在安卓自动化脚本开发领域,无障碍服务是按键精灵脱离 Root 权限、实现模拟点击、界面识别、自动操作的核心基础。本文将从函数定义、适配环境、语法规则、实战代码、场景应用及常见问题等维度,全面讲解无障碍免root函数的使用方法,帮助脚本开发者快速掌握无障碍脚本的初始化逻辑。
- 仅安卓 7.0 及以上系统、按键精灵客户端 5.0.0 及以上版本可正常调用此函数;
- Root 模式、iOS 设备无法使用该无障碍系列函数;
- 电脑端 IDE 可调用该函数调试安卓无障碍脚本,但最终脚本需在安卓无障碍模式运行。
函数名称:Acc.GetAccessibilityServiceState 获取无障碍服务状态
函数功能:获取当前安卓APP的无障碍服务开启状态
函数语法:ret = Acc.GetAccessibilityServiceState()
函数返回
| 返回名 | 返回类型 | 返回说明 |
|---|---|---|
| ret | bool | true:服务已开启 false:服务未开启 |
代码范例
If Device.GetOSType() = "android_acc" then accInit()
Function accInit()
accInit = false
Do
If not acc.GetAccessibilityServiceState() Then
TracePrint "无障碍服务未开启,前往开启,需手动完成授权"
acc.EnableAccessibilityService()
End If
If not acc.GetSnapShotServiceState() Then
TracePrint "无障碍截图服务未开启,前往开启,需手动完成授权"
acc.EnableSnapShotService()
End If
If acc.GetAccessibilityServiceState() and acc.GetSnapShotServiceState() Then
TracePrint "无障碍和无障碍截图服务都已开启"
accInit = true
Exit Function
End If
delay 999
Loop
End Function
函数名称:Acc.GetSnapShotServiceState 获取截图服务状态
函数功能:获取当前安卓APP的无障碍模式截图服务开启状态
函数语法:ret = Acc.GetSnapShotServiceState()
函数返回
| 返回名 | 返回类型 | 返回说明 |
|---|---|---|
| ret | bool | true:服务已开启 false:服务未开启 |
代码范例
If Device.GetOSType() = "android_acc" then accInit()
Function accInit()
accInit = false
Do
If not acc.GetAccessibilityServiceState() Then
TracePrint "无障碍服务未开启,前往开启,需手动完成授权"
acc.EnableAccessibilityService()
End If
If not acc.GetSnapShotServiceState() Then
TracePrint "无障碍截图服务未开启,前往开启,需手动完成授权"
acc.EnableSnapShotService()
End If
If acc.GetAccessibilityServiceState() and acc.GetSnapShotServiceState() Then
TracePrint "无障碍和无障碍截图服务都已开启"
accInit = true
Exit Function
End If
delay 999
Loop
End Function
函数名称:Acc.EnableAccessibilityService 开启无障碍服务
函数功能:请求开启当前安卓APP的无障碍服务,请求成功后将弹跳转服务授权页面,需手动完成授权
函数语法:ret = Acc.EnableAccessibilityService()
函数返回
| 返回名 | 返回类型 | 返回说明 |
|---|---|---|
| ret | bool | true:请求成功 false:请求失败 |
代码范例
If Device.GetOSType() = "android_acc" then accInit()
Function accInit()
accInit = false
Do
If not acc.GetAccessibilityServiceState() Then
TracePrint "无障碍服务未开启,前往开启,需手动完成授权"
acc.EnableAccessibilityService()
End If
If not acc.GetSnapShotServiceState() Then
TracePrint "无障碍截图服务未开启,前往开启,需手动完成授权"
acc.EnableSnapShotService()
End If
If acc.GetAccessibilityServiceState() and acc.GetSnapShotServiceState() Then
TracePrint "无障碍和无障碍截图服务都已开启"
accInit = true
Exit Function
End If
delay 999
Loop
End Function
函数名称:Acc.EnableSnapShotService 开启截图服务
函数功能:请求开启当前安卓APP的无障碍模式截图服务,请求成功后将弹出授权弹窗,需手动完成授权
函数语法:ret = Acc.EnableSnapShotService()
函数返回
| 返回名 | 返回类型 | 返回说明 |
|---|---|---|
| ret | bool | true:请求成功 false:请求失败 |
代码范例
If Device.GetOSType() = "android_acc" then accInit()
Function accInit()
accInit = false
Do
If not acc.GetAccessibilityServiceState() Then
TracePrint "无障碍服务未开启,前往开启,需手动完成授权"
acc.EnableAccessibilityService()
End If
If not acc.GetSnapShotServiceState() Then
TracePrint "无障碍截图服务未开启,前往开启,需手动完成授权"
acc.EnableSnapShotService()
End If
If acc.GetAccessibilityServiceState() and acc.GetSnapShotServiceState() Then
TracePrint "无障碍和无障碍截图服务都已开启"
accInit = true
Exit Function
End If
delay 999
Loop
End Function
典型应用场景:
-
日常自动化操作:自动点击、自动滑动、定时操作、APP 批量启动等脚本;
-
界面识别类脚本:文字识别、图标匹配、控件节点抓取、表单自动填写;
-
辅助工具脚本:自动点赞、自动浏览、消息自动回复、任务批量完成等轻量营销 / 办公脚本;
-
稳定性加固脚本:长周期挂机脚本(如后台挂机、定时任务),定时调用该函数校验权限,防止系统后台回收无障碍服务导致脚本中断。
掌握函数的用法后,结合按键精灵的节点抓取、模拟点击、图像识别等功能,即可开发出各类无需 Root 权限的稳定安卓自动化脚本。