feat(service): 添加内容捕获与语音交互服务

This commit is contained in:
2026-07-27 08:51:26 +08:00
parent 6e37800148
commit 8783f95307
7 changed files with 193 additions and 0 deletions

34
README.md Normal file
View File

@@ -0,0 +1,34 @@
启用 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", "无障碍服务已尝试静默开启");
}