34 lines
1.6 KiB
Markdown
34 lines
1.6 KiB
Markdown
启用 Content Capture:
|
|
Shell Script
|
|
settings put secure content_capture_service com.ttstd.dialer/com.ttstd.dialer.service.MyContentCaptureService
|
|
|
|
启用 系统助手 (Assist):
|
|
Shell Script
|
|
settings put secure assistant com.ttstd.dialer/com.ttstd.dialer.service.MyVoiceInteractionService
|
|
手动触发 Assist 采集: 在你的 Activity 或 Service 中,可以通过 showAssist(new Bundle()) 主动触发 onHandleAssist 回调,从而瞬间抓取屏幕信息。
|
|
|
|
对于拥有系统签名的应用,可以通过 adb 或在代码中通过 settings 命令静默开启无障碍服务。
|
|
# 1. 使用 ADB 命令手动开启
|
|
在电脑终端输入以下两条命令:
|
|
|
|
## 1. 将服务加入已启用列表
|
|
adb shell settings put secure enabled_accessibility_services com.ttstd.dialer/com.ttstd.dialer.accessibility.DialerAccessibilityService
|
|
|
|
## 2. 开启无障碍服务总开关
|
|
adb shell settings put secure accessibility_enabled 1
|
|
|
|
# 2. 在代码中自动开启 (利用系统签名)
|
|
既然你的应用有系统签名,你可以直接通过你现有的 CmdUtil 在程序启动时自动激活自己,无需用户操作:
|
|
|
|
Java
|
|
public void autoEnableAccessibility(Context context) {
|
|
String serviceName = context.getPackageName() + "/com.ttstd.dialer.accessibility.DialerAccessibilityService";
|
|
|
|
// 1. 设置启用服务(如果已有其他服务,建议先获取当前值再追加,这里演示直接覆盖)
|
|
CmdUtil.execute("settings put secure enabled_accessibility_services " + serviceName);
|
|
|
|
// 2. 开启总开关
|
|
CmdUtil.execute("settings put secure accessibility_enabled 1");
|
|
|
|
Logger.d("Accessibility", "无障碍服务已尝试静默开启");
|
|
} |