无障碍服务 AccessibilityService 全解析——Auto.js 的核心能力来源
什么是无障碍服务
Android 系统内置的一套辅助功能 API,初衷是帮助视障、听障用户更好地操作手机。通过这套 API,第三方应用可以:
- 读取屏幕上的界面元素(文本、按钮、图片等控件)
- 模拟用户的点击、长按、滑动、输入操作
- 监听界面事件(窗口打开、文本变化等)
Auto.js 把这套辅助 API 变成了通用自动化接口——这就是它能免 Root 的根本原因。
为什么必须开
没开无障碍服务 = Auto.js 就是一个普通的代码编辑器,写出来的脚本跑不起来任何界面操作。所有选择器 API、点击滑动、文本输入都依赖无障碍服务在后台运行。
开启后你会在通知栏看到一个常驻通知(类似「Auto.js 无障碍服务正在运行」),这是正常的,用于防止系统清理后台。
开启步骤(逐品牌指南)
原生 Android / Pixel / AOSP
设置 → 无障碍 → 已下载的服务 → Auto.js → 开启
MIUI(小米 / Redmi)
设置 → 更多设置 → 无障碍 → 已下载的服务 → Auto.js
ColorOS / OriginOS(OPPO / vivo)
设置 → 无障碍 → 已下载服务 → Auto.js
OneUI(三星)
设置 → 无障碍 → 已下载应用 → Auto.js
HarmonyOS(华为)
设置 → 辅助功能 → 无障碍 → 已下载的服务 → Auto.js
开发者检查无障碍状态
在脚本里可以检查无障碍服务是否开启:
if (auto.service == null) {
toast("请先开启无障碍服务");
app.startActivity({
action: "android.settings.ACCESSIBILITY_SETTINGS"
});
} else {
toast("无障碍服务已就绪");
}
auto.waitFor() 会自动等待无障碍服务就绪,是脚本开头推荐调用的第一个函数。
常见问题
开关打开后自动关闭
部分系统(尤其是 MIUI 早期版本、某些小厂定制 ROM)会定期清理无障碍服务。解决方法:
- 电池优化 → 把 Auto.js 加入白名单(不限制)
- 自启动管理 → 允许 Auto.js 自启动
- 锁定后台 → 在最近任务界面下拉或点锁定图标
某些应用界面点不了
少数应用(银行、支付类、游戏)会标记自己的界面「不允许无障碍操作」,这是应用自身的安全策略,Auto.js 无法绕过。对于游戏场景可切换到 图像识别方案。
开了无障碍但还是报「服务未连接」
尝试:关闭再重新打开无障碍开关 → 重启 Auto.js → 重启手机。如果还不行,检查是否安装了多个版本的 Auto.js(4.1.1 和 Pro 同时装会冲突)。