声明应用不是 AccessibilityTool 以符合 google 播放要求
Declaring app as not an AccessibilityTool to comply with google play requirements
当针对 Android SDK (31) 时,google play 要求我们在我们的应用程序中指定 isAccessibilityTool
属性,如果该应用程序不是无障碍工具,那么您必须在您的应用程序中声明,但去哪里?
如果我们没有在您的应用程序中声明 google 假定您正在使用 AccessibilityService
API
If you have not declared your app to be an accessibility tool but use the AccessibilityService API, i.e. you have not set the isAccessibilityTool
flag in your accessibility service’s metadata file, you will be required to complete an accessibility declaration in Play Console. source
Google Play 控制台现在要求我填写一份表格,说明我为什么在定位 Android 12 时使用 AccessibilityService
(我的应用程序不使用它)。
为了更详细地说明这个问题,这里有一些来自 Google 控制台的图片:
我尝试创建 AccessibilityService
的服务并在元数据中将 isAccessibilityTool
设置为 false
,但 google 仍然不允许我更新应用程序直到我填写无障碍服务表格:
class MyAccessibilityService: AccessibilityService() {
override fun onAccessibilityEvent(event: AccessibilityEvent?) {}
override fun onInterrupt() {}
}
这是 Android清单文件中的服务声明:
<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>
这是服务配置文件的内容:
<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"
我只删除了这一行并开始工作(多亏了 Snorlax for his google play no more is asking me tool fill the form why I'm using AccessibilityService
API .
能否查看合并后的AndroidManifest?可能是访问 AccessibilityService
API 的库或模块,如果您的应用程序 AndroidManifest 中存在以下行,您必须删除它们,如果不想填写 Google 播放使用可访问性形式:
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
此外,请检查您是否在 AndroidManifest 中的一项服务中无意中请求了无障碍服务的许可:
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
而且您可能不需要使用 isAccessibilityTool
属性。
您可以在无障碍服务的清单文件的应用程序标签中声明
<application...
...
android:isAccessibilityTool="false"
...
.. >
... />
或
作为您服务的一个属性,您的代码将是
<service
android:name=".MyAccessibilityService"
android:exported="true"
android:isAccessibilityTool="false">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService"
/>
</intent-filter>
<meta-data
android:name="android.accessibilityservice"
android:resource="@xml/serviceconfig" />
</service>
如果您设置了 isAccessibilityTool="false",但仍使用该服务,则需要在 google play conbsole 上完成声明。
点击这里了解更多详情Declaration for apps that are NOT accessibility tools
当针对 Android SDK (31) 时,google play 要求我们在我们的应用程序中指定 isAccessibilityTool
属性,如果该应用程序不是无障碍工具,那么您必须在您的应用程序中声明,但去哪里?
如果我们没有在您的应用程序中声明 google 假定您正在使用 AccessibilityService
API
If you have not declared your app to be an accessibility tool but use the AccessibilityService API, i.e. you have not set the
isAccessibilityTool
flag in your accessibility service’s metadata file, you will be required to complete an accessibility declaration in Play Console. source
Google Play 控制台现在要求我填写一份表格,说明我为什么在定位 Android 12 时使用 AccessibilityService
(我的应用程序不使用它)。
为了更详细地说明这个问题,这里有一些来自 Google 控制台的图片:
我尝试创建 AccessibilityService
的服务并在元数据中将 isAccessibilityTool
设置为 false
,但 google 仍然不允许我更新应用程序直到我填写无障碍服务表格:
class MyAccessibilityService: AccessibilityService() {
override fun onAccessibilityEvent(event: AccessibilityEvent?) {}
override fun onInterrupt() {}
}
这是 Android清单文件中的服务声明:
<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>
这是服务配置文件的内容:
<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"
我只删除了这一行并开始工作(多亏了 Snorlax for his AccessibilityService
API .
能否查看合并后的AndroidManifest?可能是访问 AccessibilityService
API 的库或模块,如果您的应用程序 AndroidManifest 中存在以下行,您必须删除它们,如果不想填写 Google 播放使用可访问性形式:
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
此外,请检查您是否在 AndroidManifest 中的一项服务中无意中请求了无障碍服务的许可:
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
而且您可能不需要使用 isAccessibilityTool
属性。
您可以在无障碍服务的清单文件的应用程序标签中声明
<application...
...
android:isAccessibilityTool="false"
...
.. >
... />
或
作为您服务的一个属性,您的代码将是
<service
android:name=".MyAccessibilityService"
android:exported="true"
android:isAccessibilityTool="false">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService"
/>
</intent-filter>
<meta-data
android:name="android.accessibilityservice"
android:resource="@xml/serviceconfig" />
</service>
如果您设置了 isAccessibilityTool="false",但仍使用该服务,则需要在 google play conbsole 上完成声明。
点击这里了解更多详情Declaration for apps that are NOT accessibility tools