web-dev-qa-db-ja.com

androidで来るすべての通知を読む方法

Androidの今後の通知をすべて読む方法。ブロードキャストレシーバーを使用して、着信通知と通知情報を読み取る機能をリッスンすることは可能ですか?.

32
Adham

最初に、マニフェストで通知を受信する意図を宣言し、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/

24
Monban

NotificationListenerServiceを使用すると、すべてのアプリケーションの通知を簡単に読み取ることができます。完全なデモコードを確認します here

13
Mukesh Y

すべてのメッセージを取得するには、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*/

            }
        }
    }
0
Rohit269