programacion - notificationmanager android ejemplo
Detecta una nueva notificación de Android (2)
En realidad, es posible, lo uso en mi aplicación.
Para Android 4.2 y abajo:
Debe registrar un AccessibilityService y asegurarse de que el usuario habilite el servicio.
Ejemplo para un servicio:
public class InstantMessenger extends AccessibilityService {
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
if (event.getEventType() == AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED) {
//Do something, eg getting packagename
final String packagename = String.valueOf(event.getPackageName());
}
}
@Override
protected void onServiceConnected() {
if (isInit) {
return;
}
AccessibilityServiceInfo info = new AccessibilityServiceInfo();
info.eventTypes = AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED;
info.feedbackType = AccessibilityServiceInfo.FEEDBACK_SPOKEN;
setServiceInfo(info);
isInit = true;
}
@Override
public void onInterrupt() {
isInit = false;
}
}
Ejemplo para verificar si su Servicio está activado
Para Android 4.3 y superior:
Use la API de Notification Listener
En la aplicación de Android en la que estoy trabajando, me gustaría poder detectar cuándo aparece una nueva notificación de barra de estado, independientemente de si fue causada por mi aplicación. Para ser más específico, quiero contar el número de notificaciones en un marco de tiempo determinado.
¿Es esto posible, y si es así, cómo?
La nueva API de Notification Listener en Android 4.3 le permite hacer esto.
Con esto, hay menos necesidad del hack de accesibilidad. También le permite descartar notificaciones.