Android 通过系统使用NotificationListenerService 监听各种Notification的使用方法

来源:互联网 发布:js 取反运算符 编辑:程序博客网 时间:2024/06/11 06:55

from:http://blog.csdn.net/zpf8861/article/details/38531669


NotificationListenerService是通过系统调起的服务,当有应用发起通知的时候,系统会将通知的动作和信息回调给NotificationListenerService。

在继承NotificationListenerService服务实现自己逻辑之前,需要在配置文件中添加如下代码,获取权限。

[java] view plain copy
 print?
  1. <service android:name=".NotificationListener"  
  2.          android:label="@string/service_name"  
  3.          android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">  
  4.     <intent-filter>  
  5.         <action android:name="android.service.notification.NotificationListenerService" />  
  6.     </intent-filter>  
  7. </service>  

这样,在系统设置中就能找到开启该服务的开关,以miui为例,在设置--安全与隐私--通知读取权限

该服务中有以下两个抽象方法,是需要开发者在使用该服务的时候实现的。

[java] view plain copy
 print?
  1. public class NotificationCollectorService extends NotificationListenerService {  
  2.   
  3.     @Override  
  4.     public void onNotificationPosted(StatusBarNotification sbn) {  
  5.           
  6.         Log.i("zpf""open"+"-----"+sbn.toString());  
  7.     }  
  8.   
  9.     @Override  
  10.     public void onNotificationRemoved(StatusBarNotification sbn) {  
  11.         Log.i("zpf""shut"+"-----"+sbn.toString());  
  12.   
  13.     }  
  14.   
  15. }  
也就是说当系统发现某应用产生通知或者用户删除某通知,都会回调该服务的这两个函数,函数的参数StatusBarNotification包含着该通知的具体信息。

如果是在Android Wear开发中,使用该方法捕获手机的通知,然后同步到手表中,就是使用该服务进行的中转

0 0
原创粉丝点击