Desidero condividere l'elemento di notifica GCM. Il pulsante di condivisione risponde agli eventi di clic e anche l'elemento viene condiviso. L'unico problema qui è, la finestra di dialogo di selezione Intenti è presente sotto la barra delle notifiche. L'utente deve chiudere manualmente la barra di stato e quindi selezionare l'app per la condivisione. Voglio chiudere la barra di stato a livello di codice, in modo che quando l'utente fa clic sulla condivisione, gli mostri direttamente la finestra di dialogo per scegliere le app.Come chiudere a livello di programmazione il vassoio di notifica
Ho trovato che il servizio status bar
può essere utilizzato per aprire/chiudere il servizio. Ma è limitato per le app di sistema.
private void closeNotificationTray() {
Object service = mContext.getSystemService(Context.STATUS_BAR_SERVICE);
Method collapse;
try {
Class<?> statusBarMngr = Class.forName("android.app.StatusBarManager");
if (Build.VERSION.SDK_INT >= 17)
collapse = statusBarMngr.getMethod("collapsePanels");
else
collapse = statusBarMngr.getMethod("collapse");
collapse.invoke(service);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
Ho utilizzato il codice precedente. Ma ricevo l'errore "STATUS_BAR_SERVICE non può essere risolto". E quando ho aggiunto il permision seguito nel manifesto:
<uses-permission
android:name="android.permission.STATUS_BAR" />
sto ottenendo, ammesso solo per il sistema di apps.It Non è che mi permette di usare nella mia app. C'è un modo per utilizzare il servizio status bar
o qualsiasi altra alternativa?
Aggiornamento:
Ho risolto il problema precedente con solo 2 righe di codice. Non è necessario chiamare STATUS_BAR_SERVICE.
Intent it = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
mContext.sendBroadcast(it);
chiamata a questo intento sarà chiude automaticamente la notifica
ho risolto questo problema. Si prega di verificare l'aggiornamento per la soluzione –
non è possibile fare affidamento sul proprio aggiornamento. cosa succede quando è aperta una finestra di dialogo a livello di sistema? Ho aperto una finestra di dialogo a livello di sistema e l'ho chiusa. –