Ich verwende die Lösung von „Meine App fragt nicht nach einer Barrierefreiheitsberechtigung“. Ich habe auf die Kotlin-Syntax umgestellt. Es scheint zu funktionieren. Wenn ich jedoch überprüfe, ob der Barrierefreiheitsdienst meiner App aktiviert ist, gibt die Funktion immer „false“ zurück, aber ich überprüfe, ob der Barrierefreiheitsdienst meiner App aktiviert und aktiviert ist. Aus diesem Grund startet meine App immer die Barrierefreiheitsabsicht. Ich bin etwas verwirrt.
Hier ist die Funktion, die prüft, ob der Barrierefreiheitsdienst aktiviert ist oder nicht.
Code: Select all
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
}
So verwende ich es:
Code: Select all
if (!isAccessibilityServiceEnable(applicationContext)) {
val accessibleIntent = Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS)
startActivity(accessibleIntent)
}
Dieser Code funktioniert und ruft die Accessibility Service Permission auf, aber selbst nachdem ich meine App so eingestellt habe, dass sie die Accessibility Service Permission verwendet, wird beim nächsten Öffnen meiner App immer noch Accessibility Intent geöffnet, als ob die Berechtigung vorhanden wäre ist für meine App nicht eingestellt. Jetzt ist mir aufgefallen, dass mein App-Name MyListApp und der App-Paketname unterschiedlich sind. com.example.mylistapp. Ist das wichtig?
Hier ist meine Absicht:
