sobre - quitar notificaciones permanentes android
Eliminar la notificación de la barra de notificaciones de otras aplicaciones (3)
Quiero eliminar las notificaciones de otra aplicación que se muestra en la barra de notificaciones. ¿Es eso posible? NotificationManager.cancelAll();
cancela solo las notificaciones mostradas por la aplicación de llamada, que yo sepa.
¿Por qué quiero hacer esto?
Tengo una aplicación que lee y envía SMS a través de una página web, y quiero que esta aplicación coexista con las aplicaciones de SMS existentes, como Handcent SMS. La forma en que quiero que funcione es que al leer los SMS recibidos recientemente a través de la página web, quiero cancelar la nueva notificación de SMS que se muestra en Handcent SMS porque ahora se lee el nuevo SMS. Estoy marcando el SMS como leído, y Handcent SMS lo reconoce como leído una vez que abro Handcent SMS, pero la notificación sigue ahí hasta que hago clic en el SMS real.
Hay dos senarios; numero 1:
- El dispositivo Android recibe un SMS.
- Handcent SMS muestra una notificación.
- El usuario lee el SMS en el dispositivo.
- Handcent SMS elimina la notificación y marca el SMS como leído.
Senario 2:
- El dispositivo Android recibe un SMS.
- Handcent SMS muestra una notificación.
- El usuario lee el SMS a través de la interfaz web.
- Mi aplicación borra la nueva notificación de SMS mostrada por Handcent SMS y marca el SMS como leído.
es posible?
Desde Android 4.3 en adelante, ahora puede cancelar las notificaciones de cualquier aplicación.
Debe registrar su aplicación como NotificationListenerService
, luego llamar a NotificationListenerService.cancelNotification(String pkg, String tag, int id)
para cancelar una notificación.
Puede cancelar sus propias notificaciones utilizando NotificationManager .
Pero no puedes cancelar las notificaciones de otras aplicaciones, eso no es posible.
Puede cerrar cualquier notificación utilizando NotificationListenerService:
public class NotificationListener extends NotificationListenerService {
@Override
public void onNotificationPosted(StatusBarNotification sbn) {
cancelNotification(sbn.getKey());
}
}
Su aplicación debe tener el permiso BIND_NOTIFICATION_LISTENER_SERVICE. https://developer.android.com/reference/android/service/notification/NotificationListenerService.html