Обнаруживать новое уведомление для 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 позволяет вам это сделать.

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

  • Как выполнить метод, нажав на уведомление
  • Несколько уведомлений о том же действии
  • Уведомление о восстановлении задачи, а не конкретной деятельности?
  • проблема с уведомлением о намерении андроида
  • Создание пользовательского уведомления, андроида
  • Android Notification Sound
  • Push-уведомления, когда приложение закрыто
  • Истекает ли идентификатор регистрации GCM?
  • возобновление деятельности извещения
  • Как использовать Notification.Builder
  • Уведомление Не показывать
  • Interesting Posts

    Группа XSLT 1.0

    Как заставить Firefox проверять наличие новой версии страницы (browser.cache.check_doc_frequency не работает)?

    Как получить или скопировать фоновое изображение в Excel?

    Добавление даты и времени в системный лоток в Windows 7

    jQuery – незаконный вызов

    Почему этот пример FINDSTR с несколькими буквальными поисковыми строками не находит совпадения?

    Каков правильный тип контента для файлов excel?

    Не удалось загрузить файл или сборку. Microsoft.SqlServer.management.sdk.sfc версия 11.0.0.0

    Борьба с попыткой получить cookie из ответа с помощью HttpClient в .net 4.5

    Почему ContentResolver.requestSync не вызывает синхронизацию?

    grep для выражения, содержащего переменную

    Как вы можете найти последнюю версию артефакта maven из Java с использованием эфира?

    Какова связь между ContentPane и JPanel?

    Почему Firefox не распознает быстрые клавиши приложения, созданные в Mac OS X System Preferences?

    Как реализовать «mustMatch» и «selectFirst» в автозаполнении пользовательского интерфейса jQuery?

    Давайте будем гением компьютера.