#android #notifications
#Android #уведомления
Вопрос:
Я хотел бы иметь возможность прослушивать уведомления, отправляемые в строку состояния, и перехватывать и подавлять (временно) эти уведомления.
Я видел AccessabilityEvent.TYPE_NOTIFICATION_STATE_CHANGED, и NotificationListenerService.
Тем не менее, я просто не хочу получать информацию при отображении уведомления, я хочу запретить отображение уведомления.
Я вижу, как это потенциально может представлять угрозу безопасности, поэтому я могу понять, если это невозможно. Возможно ли это? Если да, то как мне это сделать?
Ответ №1:
Я думаю, вы на правильном пути с NotificationListenerService. Google сделал эти API доступными с Android 4.3, поэтому приложение, использующее этот метод, будет доступно только для новых устройств.
В следующем сообщении в блоге вы можете найти пример того, что вы можете сделать с NotificationListenerService: http://weimenglee.blogspot.ch/2014/03/android-tip-notification-listener.html
Основная идея заключается в реализации onNotificationPosted()
метода, который дает вам StatusBarNotification
экземпляр. Затем вы сможете отменить уведомление с помощью this.cancelNotification(
notif.getPackageName(),
notif.getTag(),
notif.getId());
Смотрите Сообщение в блоге для дальнейшего описания того, что нужно расширить и как реализовать методы.
Надеюсь, это поможет.
Комментарии:
1. Если я отменю уведомление, могу ли я повторно отправить его позже? Будет ли оно отображаться в строке состояния, а затем исчезать или вообще не отображаться?
2. Я никогда не пробовал, но я предполагаю, что это должно быть возможно. Создание уведомления зависит от вашего приложения, Но вы можете сохранить все важные данные (намерения, содержимое и т. Д.) Из объекта StatusBarNotification для последующего использования.