from:http://blog.csdn.net/zpf8861/article/details/38531669
NotificationListenerService是通过系统调起的服务,当有应用发起通知的时候,系统会将通知的动作和信息回调给NotificationListenerService。
在继承NotificationListenerService服务实现自己逻辑之前,需要在配置文件中添加如下代码,获取权限。
- <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>
这样,在系统设置中就能找到开启该服务的开关,以miui为例,在设置--安全与隐私--通知读取权限
该服务中有以下两个抽象方法,是需要开发者在使用该服务的时候实现的。
- public class NotificationCollectorService extends NotificationListenerService {
- @Override
- public void onNotificationPosted(StatusBarNotification sbn) {
- Log.i("zpf", "open"+"-----"+sbn.toString());
- }
- @Override
- public void onNotificationRemoved(StatusBarNotification sbn) {
- Log.i("zpf", "shut"+"-----"+sbn.toString());
- }
- }
如果是在Android Wear开发中,使用该方法捕获手机的通知,然后同步到手表中,就是使用该服务进行的中转