相信很多人有这样的苦恼,在日常学习、工作、运动时不太喜欢被打扰,就喜欢将手机设置为静音或取消掉各种社交工具的提示,比如微信,偶尔会有些求转发、集赞、群@等并不需要立即回复的消息干扰,但是有时候却会错过一些重要消息。QQ倒是有特别提示,只不过我们的国民级应用微信就没有设计这个功能了。
最近刚接触到Google提供的无障碍辅助服务AccessibilityService,这是一个系统级的服务,运行在后台,并且能够收到由系统发出的一些事件,比如焦点改变,输入内容变化,按钮被点击等等,该种服务能够请求获取当前活动窗口并查找其中的内容。最典型的运用想必也是微信自动抢红包工具了,当然,根据它的特点,做一款微信特别提示工具也是轻而易举的。
首先讲讲实现原理,当接收到微信消息时,我们可以在通知栏看见发送者备注,然后我们可以在AccessibilityService的事件回调方法onAccessibilityEvent里进行switch匹配,如果event.getEventType()值为AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED,说明通知栏状态改变,这时我们只要提取消息文本进行过滤,如果含有特别提示好友的备注名,则发出特别提示。
下面请看app部分截图:
1.app主界面:可以添加需要特别提示好友的备注,当然也可以取消(没完善UI,丑请见谅)。