Я работаю над приложением для Android, которому необходимо использовать службу специальных возможностей Android.
У меня все работает:
onAccessibilityEvent
Однако, когда я пытаюсь проверить, включил ли пользователь настройку/разрешение специальных возможностей, вызывая checkSelfPermission
, он всегда возвращает «-1», также известный как PERMISSION_DENIED
для BIND_ACCESSIBILITY_SERVICE
.
Я что-то пропустил?
Можно ли проверить, включен ли параметр/разрешение или нет?
Является ли AccessibiliyService особым случаем, и вы не можете проверить разрешения как обычно?
Возможно, я могу обойти это, установив статическую переменную running=true
в моем AccessbilityService, когда он запускается в первый раз, но это выглядит немного запутанно.
Заранее спасибо, я боролся с этим полдня :(
Я пробовал запрашивать разрешения:
Чтобы уточнить:
Я намеревался проверить «разрешение» службы специальных возможностей, чтобы узнать, включил ли его уже пользователь, и, если нет, правильно подсказать пользователю, что ему нужно включить через настройки.
Насколько я понимаю, вам не нужно проверять это разрешение. Он объявлен в сервисном теге, чтобы гарантировать, что только система Android может связать его (и запретить связывание с ним любых других сторонних приложений).
Могу я спросить, почему вы хотите проверить это разрешение как обычное разрешение?
Дополнительные сведения о AccessibilityService см. в документации: https://developer.android.com/guide/topics/ui/accessibility/service#manifest.
Обновление после уточнения:
Проверить, включена ли ваша служба специальных возможностей пользователем, может быть непросто. Насколько я знаю, это невозможно сделать через Accessibility API. Некоторые обходные пути можно найти здесь: Определить, включена ли моя служба специальных возможностей и тут: Android: как проверить, включена ли конкретная служба специальных возможностей
Проверить, включена ли ваша служба специальных возможностей, может быть сложно. Вы можете попытаться найти некоторые ответы в: stackoverflow.com/questions/18094982/… и других уже отвеченных темах.
Спасибо за разъяснение, я думал, что это может быть что-то подобное, но не был уверен. Я проверяю «разрешения», чтобы узнать, нужно ли мне предлагать пользователю перейти к настройкам, чтобы включить службу специальных возможностей. В идеале, поэтому я не подсказываю пользователям, у которых он уже включен.