TongTongStudio bf36aa3303 refactor(accessibility): 重构无障碍服务辅助类并优化微信拨号逻辑
- 新增 AccessibilityServiceHelper 类,提供无障碍服务启用状态检查、列表获取和状态设置功能
- 优化 DialerAccessibilityService 中的点击操作,移除模拟点击参数,统一使用节点点击方式
- 简化微信自动接听逻辑,合并多个相似方法为 findWithScroll 统一处理滚动查找
- 移除不再使用的回调接口和常量,精简代码结构
- 修复 MainActivity 中页面跳转逻辑,正确区分应用前后台切换状态
- 在设置页面集成无障碍服务开关控制,支持调试模式下直接启用服务
- 添加输入法隐藏功能,兼容不同安卓版本的键盘管理机制
- 优化节点查找算法,提升微信联系人搜索和拨号的稳定性
2026-07-29 08:53:01 +08:00
2025-10-11 20:57:36 +08:00
2025-10-11 20:57:36 +08:00
2025-10-11 20:57:36 +08:00

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

Description
No description provided
Readme 155 MiB
Languages
Java 80.7%
F* 16.1%
Kotlin 2.9%
C++ 0.2%
CMake 0.1%