AccessibilityService微信自动化节点元素混淆问题解决

问题背景

AccessibilityService获取微信版本8.0.52以上的节点元素时信息会被混淆打乱,导致无法正常执行AccessibilityService自动化逻辑,这个问题直接影响自动化脚本对于后面微信版本的兼容。

解决

在自动化开源库Assists有网友提了这个关于微信的issues,最终也是他提供的解决方法:

创建注册一个与系统内置的相同包名类名的无障碍服务,比如:com.google.android.marvin.talkback.TalkBackService

最终通过验证确实可以👍

但是发现开启这个服务后小米手机屏幕上一直显示两行文字:

因为com.google.android.marvin.talkback.TalkBackService是Android系统自带的屏幕阅读器服务所以开启后会一直显示这两行文字

解决办法是可以定义其他系统无障碍服务相同包名类名的服务,比如:com.google.android.accessibility.selecttospeak.SelectToSpeakService

Assists中已经定义好了这个服务,集成这个库然后直接在自己的主模块中注册这个服务来使用即可

ini 复制代码
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.ven.assists.simple">
    <application
        android:name="com.ven.assists.simple.App"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:requestLegacyExternalStorage="true"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        android:usesCleartextTraffic="true">
        <!-- 注册下面的服务-->
        <service
            android:name="com.google.android.accessibility.selecttospeak.SelectToSpeakService"
            android:enabled="true"
            android:exported="true"
            android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
            <!--android:priority="10000" 可提高服务在设置中的权重,排在前面     -->
            <intent-filter android:priority="10000">
                <action android:name="android.accessibilityservice.AccessibilityService" />
            </intent-filter>
            <meta-data
                android:name="android.accessibilityservice"
                android:resource="@xml/assists_service" />
        </service>
    </application>

</manifest>
相关推荐
朱昆鹏5 小时前
开源 Claude Code + Codex + 面板 的未来vibecoding平台
前端·后端·github
lyrieek5 小时前
pgadmin的导出图实现,还在搞先美容后拍照再恢复?
前端
永远是我的最爱5 小时前
基于.NET的小小便利店前台收银系统
前端·sqlserver·.net·visual studio
从文处安5 小时前
「九九八十一难」第一难:前端数据mock指南(TS + VUE)
前端
Zhencode5 小时前
Vue3 响应式依赖收集与更新之effect
前端·vue.js
x-cmd5 小时前
[x-cmd] jsoup 1.22.1 版本发布,引入 re2j 引擎,让 HTML 解析更安全高效
前端·安全·html·x-cmd·jsoup
天下代码客6 小时前
使用electronc框架调用dll动态链接库流程和避坑
前端·javascript·vue.js·electron·node.js
weixin199701080166 小时前
【性能提升300%】仿1688首页的Webpack优化全记录
前端·webpack·node.js
冰暮流星6 小时前
javascript之数组
java·前端·javascript
晚霞的不甘7 小时前
Flutter for OpenHarmony天气卡片应用:用枚举与动画打造沉浸式多城市天气浏览体验
前端·flutter·云原生·前端框架