我正在编写一个需要辅助服务权限的应用程序。因此,我有以下代码,可以在应用程序启动后立即显示 ACCESSIBILITY 意图。在“可访问性意图”->“已安装的应用程序”下,我注意到我的应用程序未列出。为什么以及如何让我的应用程序列在“可访问性”安装的应用程序下。因此,我可以为我的应用程序启用访问权限。
这是AndroidManifest.xml中的权限:
<uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE"/>
这是MainActivity.kt中的代码
if (!isAccessibilityServiceEnable(applicationContext)) {
val accessibleIntent = Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS)
startActivity(accessibleIntent)
}
private fun isAccessibilityServiceEnable(context: Context): Boolean {
val accessibilityManager = (context.getSystemService(ACCESSIBILITY_SERVICE) as AccessibilityManager)
val accessibilityServices = accessibilityManager.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_ALL_MASK)
for (info in accessibilityServices) {
if (info.id.contains(context.packageName)) {
return true
}
}
return false
}
这是 Intent 的图像,看一下红色箭头:
据我在辅助服务文档中所知,您需要在服务中获得该权限,而不是作为独立的
uses-permission
:
<application>
<service android:name=".MyAccessibilityService"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
android:label="@string/accessibility_service_label">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
</service>
</application>