studio quitar permanentes oreo notificaciones flotantes como barra app activar android notifications android-notifications android-pendingintent

quitar - notificaciones whatsapp android 8



¿Cómo eliminar la notificación de la barra de notificaciones programáticamente en Android? (3)

Cualquier persona tiene idea de cómo podemos eliminar la notificación de la aplicación mediante programación, lo que se denomina uso pendiente.

He utilizado para cancelar la notificación utilizando el siguiente método.

AlarmManager am=(AlarmManager)getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent(Display.this, TwoAlarmService.class); PendingIntent pi = PendingIntent.getBroadcast(Display.this, AlarmNumber, intent, PendingIntent.FLAG_CANCEL_CURRENT); am.cancel(pi);

Pero el problema es una notificación que ya se disparó y que no se eliminan de la barra de notificaciones.

Gracias por adelantado...


Las notificaciones permanecen visibles hasta que ocurre una de las siguientes situaciones:

El usuario descarta la notificación individualmente o usando "Borrar todo" (si se puede borrar la notificación). El usuario hace clic en la notificación y usted llamó a setAutoCancel () cuando creó la notificación. Usted llama a cancel () para un ID de notificación específico. Este método también elimina las notificaciones en curso. Llama a cancelAll (), que elimina todas las notificaciones que emitió anteriormente. Si establece un tiempo de espera al crear una notificación utilizando setTimeoutAfter (), el sistema cancela la notificación una vez transcurrida la duración especificada. Si es necesario, puede cancelar una notificación antes de que transcurra el tiempo de espera especificado. Public void cancelNotification () {

String ns = NOTIFICATION_SERVICE; NotificationManager nMgr = (NotificationManager) getActivity().getApplicationContext().getSystemService(ns); nMgr.cancel(NOTIFICATION_ID); }


Tal vez intente esto:

NotificationManager notificationManager = (NotificationManager) getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.cancel(NOTIFICATION_ID);

O, también puedes hacer esto para cancelar todas las notificaciones en el contexto dado:

notificationManager.cancelAll();

Vea este enlace a la documentación: NotificationManager


Todas las notificaciones (incluso otras notificaciones de aplicaciones) se pueden eliminar escuchando ''NotificationListenerService'' como se menciona en la implementación de NotificationListenerService.

En el servicio tienes que llamar a cancelAllNotifications() .

El servicio debe estar habilitado para su aplicación a través de ''Aplicaciones y notificaciones'' -> ''Acceso especial a la aplicación'' -> ''Acceso a notificaciones''.

Añadir al manifiesto:

<activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:label="Test App" android:name="com.test.NotificationListenerEx" android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"> <intent-filter> <action android:name="android.service.notification.NotificationListenerService" /> </intent-filter> </service>

Luego en el código;

public class NotificationListenerEx extends NotificationListenerService { public BroadcastReceiver broadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { NotificationListenerEx.this.cancelAllNotifications(); } }; @Override public void onNotificationPosted(StatusBarNotification sbn) { super.onNotificationPosted(sbn); } @Override public void onNotificationRemoved(StatusBarNotification sbn) { super.onNotificationRemoved(sbn); } @Override public IBinder onBind(Intent intent) { return super.onBind(intent); } @Override public void onDestroy() { unregisterReceiver(broadcastReceiver); super.onDestroy(); } @Override public void onCreate() { super.onCreate(); registerReceiver(broadcastReceiver, new IntentFilter("com.test.app")); }

Después de eso, utilice el receptor de difusión para activar el borrado de todo.