当针对Android (31)时,google要求我们在应用程序中指定isAccessibilityTool
属性,如果应用程序不是可访问性工具,那么您必须在应用程序中声明这一点,但在哪里呢?
如果我们还没有声明在你的应用中谷歌假设你在使用AccessibilityService
API
如果您尚未声明您的应用程序是可访问性工具,但使用了AccessibilityService API,即您没有在可访问性服务的元数据文件中设置
isAccessibilityTool
标志,则需要在Play控制台中完成可访问性声明。来源
Google现在要求我填写一份表格,说明当我瞄准安卓12时,我为什么要使用AccessibilityService
(我的应用程序不使用)。
为了给出更多关于这个问题的细节,这里有一些来自Google控制台的图片:
我试图创建一个AccessibilityService
服务,并在元数据中将isAccessibilityTool
设置为false
,但在填写可访问性服务表单之前,谷歌仍然不允许我更新该应用程序:
class MyAccessibilityService: AccessibilityService() {
override fun onAccessibilityEvent(event: AccessibilityEvent?) {}
override fun onInterrupt() {}
}
以下是AndroidManifest文件中的服务声明:
<service
android:name=".MyAccessibilityService"
android:exported="true">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
<meta-data
android:name="android.accessibilityservice"
android:resource="@xml/serviceconfig" />
</service>
以下是serviceconfig文件的内容:
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:isAccessibilityTool="false"
android:packageNames="com.example.my_package"
tools:targetApi="s" />
我错过了什么吗?在何处或如何声明isAccessibilityTool
属性直到控制台,这是应用程序不使用AccessibilityService
API?
更新
我试图将服务元数据直接包含在应用程序标记中:
<application
...>
<meta-data
android:name="android.accessibilityservice"
android:resource="@xml/serviceconfig" />
</application>
此外,我还试图在应用程序标记中直接使用isAccessibilityTool
属性:
<application
....
tools:targetApi="s"
android:isAccessibilityTool="false">
</application>
以上都不是为我工作的
最终更新
我检查了合并的清单,其中一个服务包含此权限:
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
我只删除了这一行并开始工作(感谢斯诺拉克斯的answer,google不再问我工具,填写表单,我为什么要使用AccessibilityService
API。
https://stackoverflow.com/questions/70312896
复制相似问题