Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to read all the coming notifications in android

How to read all the coming notifications in android. Is it possible to use the broadcast receiver to listen the incoming notifications and the ability to read the notifications information.

like image 666
Adham Avatar asked May 26 '13 09:05

Adham


3 Answers

First you must declare your intent to receive notifications in your manifest, so that you can get the android.permission.BIND_NOTIFICATION_LISTENER_SERVICE permission.

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>

Then create a NotificationListenerService class and override the onNotificationPosted function.

For more information, read the developer reference here: https://developer.android.com/reference/android/service/notification/NotificationListenerService.html

Also look at this simple example application for implementation guidance: https://github.com/kpbird/NotificationListenerService-Example/

like image 78
Monban Avatar answered Oct 21 '22 11:10

Monban


Using NotificationListenerService we can easily read the notification of all application. Check complete demo code here

like image 22
Mukesh Y Avatar answered Oct 21 '22 11:10

Mukesh Y


You need to do like this in onNotificationPosted in order to get all messages

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

            }
        }
    }
like image 2
Rohit269 Avatar answered Oct 21 '22 12:10

Rohit269