recuperar - ocultar iconos de la barra de estado android
Cerrar barra de estado cuando se hace clic en la notificación del botón (2)
Ok, lo solucioné
private int currentApiVersion = android.os.Build.VERSION.SDK_INT;
...
Object sbservice = context.getSystemService("statusbar");
try {
Class<?> statusbarManager = Class.forName("android.app.StatusBarManager");
if (currentApiVersion <= 16) {
Method collapse = statusbarManager.getMethod("collapse");
collapse.invoke(sbservice);
} else {
Method collapse2 = statusbarManager.getMethod("collapsePanels");
collapse2.invoke(sbservice);
}
} catch (Exception e) {
e.printStackTrace();
}
¿Cómo puedo cerrar la barra de estado después de hacer clic en el botón de notificación?
Intenté esto , pero tuve una excepción:
java.lang.NoSuchMethodException: collapse []
at java.lang.Class.getConstructorOrMethod(Class.java:460)
at java.lang.Class.getMethod(Class.java:915)
...
Mi código:
NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.icon)
.setContentTitle("Sync Failed")
.setContentText("Lorem ipsum dolor sit amet")
.setStyle(new NotificationCompat.BigTextStyle().bigText("Lorem ipsum dolor sit amet"))
.addAction(R.drawable.change, "Change Pass", pChangePass)
.addAction(R.drawable.remove, "Ignore", pIgnore)
.setAutoCancel(false);
mNotificationManager.notify(accountUnique, builder.build());
En la clase NotificationIntent
@Override
public void onReceive(Context context, Intent intent) {
int notificationID = intent.getExtras().getInt("NOT_ID");
this.callbackContext = StatusBarNotification.getCallback();
this.mNotificationManager = StatusBarNotification.getNotificationManager();
this.mNotificationManager.cancel(notificationID);
this.callbackContext.success(returnJSON(intent));
}
La siguiente solución debería ser más simple y no se deben usar API no públicas:
Intent it = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
context.sendBroadcast(it);