Обнаруживать новое уведомление для Android

В приложении Android, над которым я работаю, я хотел бы узнать, когда появится новое уведомление о статусной строке, независимо от того, вызвано ли это моим приложением. Чтобы быть более конкретным, я хочу подсчитать количество уведомлений за определенный период времени.

Возможно ли это, и если да, то как?

На самом деле, возможно, я использую его в своем приложении.

Для Android 4.2 и ниже:

Вам необходимо зарегистрировать AccessibilityService и убедиться, что пользователь включил эту услугу.

Пример для службы:

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; } } 

Пример проверки активации вашей службы

Для Android 4.3 и выше:

Использовать API-интерфейс прослушивателя уведомлений

Новый API-интерфейс Notification Listener в Android 4.3 позволяет вам это сделать.

При этом меньше необходимости в доступе к взлому. Он также позволяет отклонять уведомления.

  • Проверить доступ к уведомлениям с помощью NotificationListenerService
  • Как реализовать устаревшие методы уведомления
  • Уведомления с несколькими линиями в Интернете, такие как приложение Gmail
  • Обновить текст уведомления, а не целое уведомление
  • Уведомление о восстановлении задачи, а не конкретной деятельности?
  • Android: удалить уведомление из панели уведомлений
  • Android - создайте уведомление, TaskStackBuilder.addParentStack не работает
  • PendingIntent работает правильно для первого уведомления, но неправильно для остальных
  • Отмена уведомления об удалении приложения из многозадачной панели
  • Как воспроизвести звук уведомления об андроиде
  • Как нарисовать представление поверх всего?
  • Давайте будем гением компьютера.