Как прочитать все приходящие уведомления в андроиде. Можно ли использовать широковещательный приемник для прослушивания входящих уведомлений и возможность чтения информации об уведомлениях.
Как прочитать все приходящие уведомления в андроиде
Ответы (3)
Сначала вы должны заявить о своем намерении получать уведомления в своем манифесте, чтобы получить разрешение android.permission.BIND_NOTIFICATION_LISTENER_SERVICE
.
AndroidManifest.xml:
<service android:name=".NotificationListener"
android:label="@string/service_name"
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
<intent-filter>
<action android:name="android.service.notification.NotificationListenerService" />
</intent-filter>
</service>
Затем создайте класс NotificationListenerService
и переопределите функцию onNotificationPosted
.
Дополнительные сведения см. в справочнике для разработчиков здесь: https://developer.android.com/reference/android/service/notification/NotificationListenerService.html
Также просмотрите этот простой пример приложения для руководства по реализации: https://github.com/kpbird/NotificationListenerService-Example/
Используя NotificationListenerService, мы можем легко читать уведомления всех приложений. Проверьте полный демо-код здесь< /а>
Вам нужно сделать это в onNotificationPosted, чтобы получить все сообщения
if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)){
Parcelable b[] = (Parcelable[]) extras.get(Notification.EXTRA_MESSAGES);
if(b != null){
for (Parcelable tmp : b){
Bundle msgBundle = (Bundle) tmp;
content = content + msgBundle.getString("text") + "\n";
/*Set<String> io = msgBundle.keySet(); // To get the keys available for this bundle*/
}
}
}