Определить, было ли уведомление удалено

У меня следующая проблема. Я хочу определить, когда уведомление было удалено из панели уведомлений.

Я могу сканировать уведомления с помощью AccessbilityService и приводить свои ParcelableData к уведомлению.

Notification notif = (Notification) event.getParcelableData();

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

Любые идеи? Я в отчаянии... пробую уже несколько часов.


person Aeefire    schedule 19.03.2013    source источник
comment
вы можете найти свой ответ stackoverflow.com/questions/8811876/   -  person Chirag Patel    schedule 19.03.2013
comment
На самом деле я не ищу, чтобы мои собственные уведомления были обнаружены. Я ищу уведомления других пакетов/приложений, которые нужно удалить...   -  person Aeefire    schedule 19.03.2013


Ответы (4)


На очень похожий вопрос уже был дан ответ здесь, на SO:

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

Короче говоря, можно определить появление нового уведомления, но это все. Вы не можете определить, когда уведомления были отклонены.

person Michell Bak    schedule 19.03.2013
comment
хмпф. Может быть, мне следует применить подход, описанный здесь: gmariotti.blogspot.co.uk/2013/02/ - person Aeefire; 19.03.2013
comment
Это в основном первый ответ в моей ссылке. Нет сомнений, что ссылка дает ответ. - person Michell Bak; 20.03.2013

Вы можете использовать setDeleteIntent в Notification.Builder:

http://developer.android.com/reference/android/app/Notification.Builder.html#setDeleteIntent(android.app.PendingIntent)

Его можно использовать, чтобы делать то, что вы хотите (я думаю, для вас уже слишком поздно, но это может помочь кому-то другому)

person Damien Belard    schedule 10.11.2014
comment
Это не то, чего хотел ОП, он хочет обнаружить удаление уведомлений из других приложений. Не уверен, почему у этого больше всего голосов. - person Denny; 23.03.2017

насколько я знаю, это невозможно, если у вас нет рута, но начиная с андроида 4.3, который вышел буквально вчера, это возможно. вот несколько ссылок:

блог разработчиков Android:

Доступ к уведомлениям. Теперь ваши приложения могут получать доступ и взаимодействовать с потоком уведомлений в строке состояния по мере их публикации. Вы можете отображать их любым удобным для вас способом, в том числе перенаправлять их на близлежащие Bluetooth-устройства, а также обновлять и отклонять уведомления по мере необходимости.

веб-сайт для разработчиков Android:

В Android 4.3 добавлен новый класс службы NotificationListenerService, который позволяет вашему приложению получать информацию о новых уведомлениях по мере их отправки системой.

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

веб-сайт для разработчиков Android — описание API:

Доступ к уведомлениям

Уведомления давно стали популярной функцией Android, поскольку они позволяют пользователям просматривать информацию и обновления со всей системы в одном месте. Теперь в Android 4.3 приложения могут наблюдать за потоком уведомлений с разрешения пользователя и отображать уведомления любым удобным для них способом, в том числе отправлять их на устройства поблизости, подключенные через Bluetooth.

Вы можете получить доступ к уведомлениям через новые API, которые позволяют зарегистрировать службу прослушивателя уведомлений и с разрешения пользователя получать уведомления по мере их отображения в строке состояния. Уведомления доставляются вам полностью, со всеми подробностями об исходном приложении, времени публикации, виде и стиле контента, а также приоритете. Вы можете оценить интересующие поля в уведомлениях, обработать или добавить контекст из своего приложения и направить их для отображения любым выбранным вами способом.

Новый API предоставляет вам обратные вызовы при добавлении, обновлении и удалении уведомления (либо потому, что пользователь отклонил его, либо исходное приложение отозвало его). Вы сможете запускать любые намерения, связанные с уведомлением или его действиями, а также удалять его из системы, позволяя вашему приложению предоставлять полный пользовательский интерфейс для уведомлений.

и, конечно же, документация API этого нового слушателя в эта ссылка

person android developer    schedule 25.07.2013

Это возможно, если вы расширите NotificationListener и сделаете свои собственные вещи в обратных вызовах: https://developer.android.com/reference/android/service/notification/NotificationListenerService.html

person change    schedule 03.04.2015