Как прочитать все ближайшие уведомления в Android

Как прочитать все ближайшие уведомления в Android. Можно ли использовать широковещательный приемник для прослушивания входящих уведомлений и возможность считывания информации уведомлений.

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*/

            }
        }
    }
Другие вопросы по тегам