Hi,大家好,我是承香墨影!
Android 的辅助模式(Accessibility)功能非常的强大。基本上被获取到授权之后,可以监听手机上的任何事件,例如:屏幕点击、窗口的变化、以及模拟点击、模拟系统按键等等。
比较常见的实际使用例子,就是一般应用市场,会推荐开启辅助模式,以便在安装 Apk 的时候,自动帮你点击“下一步”和“安装”按钮。还有个例子就是微信抢红包插件,也是基于它来实现的。
Accessibility 的权限非常的高,基本上你授权开启某个别人提供的 AccessibilityService 之后,他就可以干很多事情而不让你知道,而这些是不需要 Root 权限的。所以一般小体量的产品,可能支持它并没有什么用,因为信任度太低了,大部分用户根本不会打开。比较常见的就是一些工具类的 App,帮用户节省一些点击的时间。
虽然很多时候,Accessibility 不会被用在商业产品上,但是这并不妨碍我们使用 Accessibility 来做一些有意思的功能。
二、辅助模式的使用步骤辅助模式是可以支持第三方开发,也就是我们可以按照文档对其进行支持,只要用户授权开启此服务,我们就可以利用 Accessibility 提供的一些标准 Api 实现很多有意思的功能。
如果你想要使用辅助模式,你还需要如下步骤:
实现一个继承自 AccessibilityService 的服务类。
设定配置信息,以便系统知道该辅助模式的一些基本信息,例如监听那些事件。
在清单文件(AndroidManifest.xml)中,注册此服务。
在系统设置中,找到“无障碍”,并开启此服务。
接下来我们一步一步讲解这里的步骤和细节。
2.1 继承 AccessibilityService辅助模式,本质上还是一个服务,我们如果想要支持它,首先需要继承 AccessibilityService 这个类。
AccessibilityService 类提供了很多需要重写的方法,其中有两个是强制重写的:
public abstract void onAccessibilityEvent(AccessibilityEvent event); public abstract void onInterrupt();