Методы NotificationListenerService не вызываются после сбоя - PullRequest
0 голосов
/ 10 декабря 2018

Просто возьмите этот репозиторий github в качестве ссылки.https://github.com/mukesh4u/NotificationListener

Поскольку вызов функции getActiveNotifications() в методе onCreate() класса NotificationService возвращает ноль, оператор

StatusBarNotification notifications[] = getActiveNotifications();

присваивает нулевой массив для notifications.

Из-за этого при вставке следующего кода в метод onCreate() класса NotificationService

StatusBarNotification notifications[] = getActiveNotifications();
for(StatusBarNotification item : notifications)
{
    if(item != null)
    {
        Bundle extras = item.getNotification().extras;
        String title = extras.getString("android.title");
        Log.i("Title", title);
    }
}

происходит сбой приложения с сообщением

Попытка получить длину нулевого массива

и остановка NotificationListenerService, который был запущен ранее.

Один раз, если он остановился, запустив приложение снова переопределенными методамиonCreate(), onNotificationPosted(StatusBarNotification sbn) и onNotificationRemoved(StatusBarNotification sbn) в классе NotificationService больше не вызывают.

Есть ли способ заставить их работать, снова запустив приложение, просто внеся некоторые изменения в кодеили путем внесения некоторых изменений в настройки или конфигурацию приложения, без необходимости повторного удаления и переустановки приложения или необходимости блокировать приложение от прослушивания уведомлений и не допускать его прослушивания.снова показания?

...