如何在android中阅读所有即将发布的通知

时间:2013-05-26 09:25:42

标签: android notifications broadcastreceiver

如何阅读android中所有即将发布的通知。是否可以使用广播接收器来收听传入的通知和读取通知信息的能力。

3 个答案:

答案 0 :(得分:23)

首先,您必须声明在清单中接收通知的意图,以便获得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/

答案 1 :(得分:13)

使用 NotificationListenerService ,我们可以轻松阅读所有应用程序的通知。检查完整的演示代码here

答案 2 :(得分:0)

您需要在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*/

            }
        }
    }