仅Widget应用未显示在无障碍设置菜单问题求助
无障碍服务未显示在系统设置菜单的排查方案
核心错误:Action拼写错误
在AndroidManifest.xml的PowerService服务配置中,intent-filter里的Action存在拼写错误:
<intent-filter> <action android:name="android.accessibilityservice.AcessibilityService" /> </intent-filter>
正确的Action名称应为android.accessibilityservice.AccessibilityService(注意单词Accessibility需拼写完整,你少了一个字母c)。系统依赖这个Action识别无障碍服务,拼写错误会直接导致服务无法被系统检测到,因此不会出现在无障碍设置菜单中。
其他优化建议(不影响服务显示,但影响后续功能)
调整无障碍配置范围
power_service_config.xml中设置了android:packageNames="com.lock.button",这会限制服务仅监听自身应用的事件,但锁屏属于全局操作,建议移除该属性或设置为空字符串,让服务能处理全局事件:<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android" android:accessibilityEventTypes="typeAllMask" android:accessibilityFlags="flagDefault" android:accessibilityFeedbackType="feedbackSpoken" android:notificationTimeout="100" />若无需过滤按键事件,将
flagRequestFilterKeyEvents替换为flagDefault更合适。修正服务启动逻辑
无障碍服务的启动由系统管理,用户在设置中开启权限后系统会自动启动服务,无需手动调用startForegroundService。可在guaranteeAccessibilityService方法中引导用户开启权限,待权限生效后,系统会自动初始化PowerService,此时再执行锁屏操作即可。
内容的提问来源于stack exchange,提问作者Vandiscleisson N.
相关产品推荐
相关产品推荐

