Я использую решение из раздела «Мое приложение» не запрашивает разрешение на доступность. Я перешел на синтаксис Kotlin. Кажется, это работает. Однако при проверке того, включена ли служба специальных возможностей моего приложения, функция всегда возвращает false, но я проверяю, включена ли служба специальных возможностей моего приложения и включена ли она. Из-за этого мое приложение всегда запускает Accessibility Intent. Я немного запутался.
Вот функция, которая проверяет, включена ли служба специальных возможностей.
Код: Выделить всё
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. Имеет ли это значение?
Вот мое намерение:
Подробнее здесь:
https://stackoverflow.com/questions/793 ... urning-fal