Android 通过系统使用NotificationListenerService 监听各种Notification的使用方法
2016-03-01 18:24
661 查看
from:http://blog.csdn.net/zpf8861/article/details/38531669
NotificationListenerService是通过系统调起的服务,当有应用发起通知的时候,系统会将通知的动作和信息回调给NotificationListenerService。
在继承NotificationListenerService服务实现自己逻辑之前,需要在配置文件中添加如下代码,获取权限。
[java] view
plain copy
print?
<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为例,在设置--安全与隐私--通知读取权限
该服务中有以下两个抽象方法,是需要开发者在使用该服务的时候实现的。
[java] view
plain copy
print?
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());
}
}
也就是说当系统发现某应用产生通知或者用户删除某通知,都会回调该服务的这两个函数,函数的参数StatusBarNotification包含着该通知的具体信息。
如果是在Android Wear开发中,使用该方法捕获手机的通知,然后同步到手表中,就是使用该服务进行的中转
NotificationListenerService是通过系统调起的服务,当有应用发起通知的时候,系统会将通知的动作和信息回调给NotificationListenerService。
在继承NotificationListenerService服务实现自己逻辑之前,需要在配置文件中添加如下代码,获取权限。
[java] view
plain copy
print?
<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为例,在设置--安全与隐私--通知读取权限
该服务中有以下两个抽象方法,是需要开发者在使用该服务的时候实现的。
[java] view
plain copy
print?
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());
}
}
也就是说当系统发现某应用产生通知或者用户删除某通知,都会回调该服务的这两个函数,函数的参数StatusBarNotification包含着该通知的具体信息。
如果是在Android Wear开发中,使用该方法捕获手机的通知,然后同步到手表中,就是使用该服务进行的中转
相关文章推荐
- 关于android.mk
- Android 5.0 Contacts源码分析
- Android深入浅出系列之服务机制—1.Android中的Service
- 经典算法之——快速排序
- ViewRoot,DecorView,MeasureSpec和View的工作原理——Android开发艺术探索笔记
- 添加页面切换动画, 避免冷启动
- android开发练习五-添加一个listview
- Android Studio多渠道打包
- 安全卫士第四天笔记
- Android Contacts 联系人源码分析
- 关于java,android中Math的一些用法
- Android开发艺术探索小记(第十四章)
- 编写Android.mk终极技巧
- Android.mk里添加 LOCAL_SDK_VERSION := current 后不能使用@hide API
- Android Studio中文组(中文社区)
- Android项目:手机安全卫士(4)—— 自定义(组合)控件、属性
- Android开发技巧——Camera拍照功能
- Android开发技巧——Camera拍照功能
- android 深入浅出 群内“每日一问” 问答总结
- Android开发技巧——Camera拍照功能