检查 BIND_ACCESSIBILITY_SERVICE 的权限

Check Permission for BIND_ACCESSIBILITY_SERVICE

我正在开发一个需要使用 Android 辅助功能服务的 Android 应用程序。

我已经完成了所有工作:

然而,当我尝试通过调用 checkSelfPermission 来检查用户是否启用了辅助功能设置/权限时,它总是 returns “-1” 也就是 PERMISSION_DENIED 对于 BIND_ACCESSIBILITY_SERVICE.

我是不是漏掉了什么?

是否可以检查设置/权限是否启用?

AccessibiliyService是不是特例,不能正常查权限?

我可以通过在我的 AccessbilityService 第一次运行时设置一个静态变量 running=true 来解决这个问题,但这感觉有点乱。

提前致谢,我已经为此苦苦挣扎了 1/2 天:(

我已尝试请求权限:

澄清一下:

我打算检查辅助功能服务 "permission" 以查看用户是否已经启用它,如果没有,则正确提示用户他们需要通过设置启用它。

据我了解,您不需要检查此权限。它在服务标签中声明,以确保只有 Android 系统可以绑定到它(并禁止任何其他第三方应用程序绑定到它)。

请问为什么要把这个权限勾选为普通权限?

有关 AccessibilityService 的更多信息,请查看文档:https://developer.android.com/guide/topics/ui/accessibility/service#manifest

澄清后更新:

检查您的辅助功能服务是否被用户打开可能很棘手。据我所知,它不能通过辅助功能 API 完成。可以在此处找到一些解决方法: Detect if my accessibility service is enabled 和这里: Android: How do you check if a particular AccessibilityService is enabled