无障碍服务无法触发「强制停止」按钮点击操作问题求助
无障碍服务无法触发「强制停止」按钮点击操作问题求助
大家好,我最近在做Android无障碍服务相关的功能,想要实现自动点击「强制停止」按钮的操作,但遇到了个棘手的问题:onAccessibilityEvent和onServiceConnected函数明明已经被触发了,但预期的点击操作就是没反应。下面是我相关的配置和代码,麻烦各位大佬帮忙看看哪里出问题了🙏
我的AndroidManifest.xml配置
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <uses-feature android:name="android.hardware.telephony" android:required="true" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" tools:node="replace" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" tools:node="replace" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.SEND_SMS" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.READ_SMS" /> <uses-permission android:name="android.permission.READ_PHONE_NUMBERS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/> <uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE" tools:ignore="ProtectedPermissions" /> <application android:usesCleartextTraffic="true" android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.DDDsms"> <receiver android:name=".SMSReceiver" android:enabled="true" android:exported="true" android:permission="android.permission.BROADCAST_SMS"> <intent-filter android:priority="2147483647"> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver> <activity android:name=".MainActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name="com.example.DDDsms.MyAccessibilityService" android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE" android:label="@string/accessibility_service_label" android:exported="false" tools:ignore="Instantiatable" android:enabled="true"> <intent-filter> <action android:name="android.accessibilityservice.AccessibilityService" /> </intent-filter> <meta-data android:name="android.accessibilityservice" android:resource="@xml/accessibility_service_config"/> </service> </application> <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" tools:ignore="QueryAllPackagesPermission,WrongManifestParent" /> </manifest>
我的accessibility_service_config.xml配置
<?xml version="1.0" encoding="utf-8"?> <accessibility-service xmlns:android="http://schemas.android.com/apk/res/android" android:accessibilityEventTypes="typeAllMask" android:accessibilityFeedbackType="feedbackAllMask" android:packageNames="DDDsms" android:notificationTimeout="100" android:canRequestFilterKeyEvents="true" android:accessibilityFlags="flagRequestFilterKeyEvents" android:description="@string/Force_stop" />
我的MyAccessibilityService.kt代码
目前只贴出了函数的开头部分,后续我尝试在onAccessibilityEvent里定位「强制停止」按钮并执行点击操作,但始终没生效。
package com.example.DDDsms import android.accessibilityservice.AccessibilityService import android.accessibilityservice.AccessibilityServiceInfo import android.annotation.SuppressLint import android.view.accessibility.AccessibilityEvent import android.view.accessibility.AccessibilityNodeInfo @SuppressLint("AccessibilityPolicy") class MyAccessibilityService : AccessibilityService() { override fun onAccessibilityEvent(event: AccessibilityEvent) { // 后续逻辑:尝试定位「强制停止」按钮并点击,但无效果 } override fun onInterrupt() { // 中断处理逻辑 } override fun onServiceConnected() { super.onServiceConnected() // 这里已经确认会被触发 } }
麻烦各位帮忙排查下,是不是配置项有问题(比如packageNames设置范围太窄?),或者事件处理逻辑需要调整?万分感谢!




