应客户需求研究添加第三方聊天软件QQ/微信/Twitter/易信等桌面图标添加角标,以显示最新消息数,而掉入此坑。
幸而看到其他博文和底层代码,了解到——NotificationListenerService,能让应用获取到其他应用发送的通知,是android在4.3版本后新加入的。拨开云雾见青天,甚是欢喜。废话不多,我们直接看实现:
继承自NotificationListenerService,新增通知或是更新时会回调Posted,通知被移除时会回调Removed,
StatusBarNotification包含更多的通知详情。getNotification()返回我们所熟悉的Notification对象。Facebook/Twitter/陌陌等通知数可以通过notification.number获取;QQ/易信、陌陌新通知会覆盖旧通知,未读消息都是带在通知里面的。
需注意getId()/getTag()不同,StatusBarNotification可能不一样。小平台适配应用,考虑的因素太多,此坑太深,慎入。
在AndroidManifest.xml添加注册和获取权限
开启通知使用权
a.Acticity直接跳转
b.在settings->Apps->Configure apps->Special access->Notification access->开启相应应用的通知使用权。
关于接收不到通知。根本原因是Service被杀掉,重新绑定,不生效。
请参考:http://blog.csdn.net/zrj244265428/article/details/68958358
以上参考,安卓通知栏管理详解及分析 NotificationListenerService:http://blog.csdn.net/cankingapp/article/details/50858229
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!