为何检测应用Accessibility Service状态始终返回false?
辅助服务启用状态检测始终返回false问题
我参考Stack Overflow上《My app doesn't asks for Accessibility Permission》的解决方案,将其转换为Kotlin语法后,能正常唤起辅助服务设置界面,但检测应用Accessibility Service是否启用的函数始终返回false——即便我已在系统中开启了该应用的辅助服务,导致每次启动应用都会跳转至辅助服务设置界面,对此我感到困惑。
检测辅助服务状态的函数
private fun isAccessibilityServiceEnable(context: Context): Boolean { val accessibilityManager = (context.getSystemService(ACCESSIBILITY_SERVICE) as AccessibilityManager) val accessibilityServices = accessibilityManager.getEnabledAccessibilityServiceList( AccessibilityServiceInfo.FEEDBACK_ALL_MASK ) Toast.makeText( this@MainActivity, context.packageName, Toast.LENGTH_LONG ).show() for (info in accessibilityServices) { if (info.id.contains(context.packageName)) { return true } } return false }
调用代码
if (!isAccessibilityServiceEnable(applicationContext)) { val accessibleIntent = Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS) startActivity(accessibleIntent) }
代码可正常唤起辅助服务权限设置界面,但开启权限后,再次启动应用仍会跳转至该界面,仿佛权限未设置。我注意到应用名称MyListApp与包名com.example.mylistapp不同,这是否会影响检测结果?
相关截图
- 截图1:Intent配置界面
- 截图2:系统辅助服务列表界面
- 截图3:应用权限设置界面
- 截图4:辅助服务详情设置界面
内容的提问来源于stack exchange,提问作者ThN
相关产品推荐
相关产品推荐

