【笔记】Android NotificationListenerService监听短信、来电、微信、QQ等通知消息
2017-05-22 23:00
1261 查看
最近和一个做手环的公司对接,封装了一堆蓝牙的接口,然后那些消息的监听什么的不给,只能自己去实现。
不得不说非常幸运,NotificationListenerService正好是API 18开始加入的,而蓝牙BLE最低支持的就是18。
根据API的描述,我们发现只需要两步就能实现通知的监听:
1、实现Service
创建一个实现NotificationListenerService的服务,如果只是监听通知的显示和取消只需要在服务里重写通知显示监听onNotificationPosted和通知移除onNotificationRemoved即可。
与之前的悬浮窗问题一样,监听通知栏的消息也需要用户手动去授权。
判断是否已授权,使用了v7兼容库中方法,超方便
跳转通知授权界面
源码
不得不说非常幸运,NotificationListenerService正好是API 18开始加入的,而蓝牙BLE最低支持的就是18。
根据API的描述,我们发现只需要两步就能实现通知的监听:
1、实现Service
创建一个实现NotificationListenerService的服务,如果只是监听通知的显示和取消只需要在服务里重写通知显示监听onNotificationPosted和通知移除onNotificationRemoved即可。
/** * 通知监听服务 * * @author SJL * @date 2017/5/22 22:21 */ public class NLService extends NotificationListenerService { @Override public void onNotificationPosted(StatusBarNotification sbn) { super.onNotificationPosted(sbn); } @Override public void onNotificationRemoved(StatusBarNotification sbn) { super.onNotificationRemoved(sbn); } }
2、配置Manifest
在我们创建Service的时候,Manifest中已经有service节点的配置生成了,我们只需要配置一下权限和过滤器即可,非常方便。<service android:name=".NLService" android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"> <intent-filter> <action android:name="android.service.notification.NotificationListenerService" /> </intent-filter> </service>
3、权限问题
只需要以上两步就能实现通知消息的监听确实很方便,但谷歌仍给我们留了个坑——权限问题。与之前的悬浮窗问题一样,监听通知栏的消息也需要用户手动去授权。
判断是否已授权,使用了v7兼容库中方法,超方便
/** * 是否已授权 * * @return */ private boolean isNotificationServiceEnable() { return NotificationManagerCompat.getEnabledListenerPackages(this).contains(getPackageName()); }
跳转通知授权界面
startActivity(new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS"));
源码
相关文章推荐
- android使用NotificationListenerService监听通知栏消息
- 使用NotificationListenerService监听通知栏消息
- Android通知栏监听之NotificationListenerService
- Android 通过系统使用NotificationListenerService 监听各种Notification的用法
- Android使用NotificationListenerService获取通知相关信息
- Android开发笔记之notification消息推送 通知栏的实现
- Android 通过系统使用NotificationListenerService 监听各种Notification的使用方法
- Android 通过系统使用NotificationListenerService 监听各种Notification的使用方法
- 仿微信、短信、QQ等消息数目右上角红色小圆球气泡显示(基于Android XML布局文件实现)
- 举例说明在android中用PhoneStateListener监听手机电话状态与用发送邮件来通知来电电话的号码
- 仿微信、短信、QQ等消息数目右上角红色小圆球气泡显示(基于Android XML布局文件实现)
- 添加第三方聊天软件QQ/微信/Twitter等桌面角标---NotificationListenerService
- Android 通过系统使用NotificationListenerService 监听各种Notification的使用方法
- 仿微信、短信、QQ等消息数目右上角红色小圆球气泡显示(基于Android XML布局文件实现)
- Android开发总结笔记 Notification(消息通知) 1-1-20
- android NotificationListenerService监听通知栏(qq 微信 短信)
- NotificationListenerService 监听应用程序消息
- Android实现类似qq微信消息悬浮窗通知功能
- Android 通知使用权(NotificationListenerService)的使用