谷歌做AccessibilitySerivice辅助工具,为的是给操作不便的人提供方便,而广大开发拿它干嘛了?抢微信红包,操作别的APP,做外挂。
刀是把好刀,可惜没用来干好事。我只是想看看刀,也不知道是切菜还是砍人。废话不说,开讲。
AccessibilityService 是个抽象类,继承自service,口说无凭源码为证:
java.lang.Object
↳ android.content.Context
↳ android.content.ContextWrapper
↳ android.app.Service
↳ android.accessibilityservice.AccessibilityService
谷歌对这个类的解释是:
An accessibility service runs in the background and receives callbacks by the system when AccessibilityEvents are fired. Such events denote some state transition in the user interface, for example, the focus has changed, a button has been clicked, etc. Such a service can optionally request the capability for querying the content of the active window. Development of an accessibility service require
翻译过来是:一个辅助服务在后台运行,并在系统重启时辅助激发事件接收回调。这样的事件表示在用户界面中的一些状态转移,例如,焦点已改变,一个按钮被点击等这样的服务可以选择请求的能力,用于查询活动窗口的内容。辅助功能服务的发展需要扩展此类和实现它的抽象方法。(抄来的翻译)
如果要做一个自己的服务类,那就集成AccessibilityService,并实现它的两个方法
1. 创建服务类
public class MyAccessibility extends AccessibilityService{
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
// TODO Auto-generated method stub
}
@Override
public void onInterrupt() {
// TODO Auto-generated method stub
}
}
上面代码中两个方法在父类是抽象的,必须写。此外Accessibilityservice中还有几个常用的方法:
详细请看文档,
点击打开链接
2. 声明、配置服务类
像其他Service服务一样,需要在AndroidManifest.xml中声明.除此之外,该服务还必须配置以下两项:
配置<intent-filter>,其name为固定的android.accessibilityservice.AccessibilityService
声明BIND_ACCESSIBILITY_SERVICE权限,以便系统能够绑定该服务(4.1版本后要求)
注意:任何一点配置错误,系统都检测不到该服务,因此其固定配置如下:
<service
&nbs