android - 声明应用不是 AccessibilityTool 以符合 google play 要求

标签 android google-play-console accessibilityservice android-12

当针对 Android SDK (31) 时,google play 要求我们在我们的应用中指定 isAccessibilityTool 属性,如果该应用不是无障碍工具,那么您必须在您的应用中声明它,但是去哪儿?

如果我们没有在您的应用程序中声明您正在使用 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 控制台的图片: 1 2

我尝试创建 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>

这是服务配置文件的内容:

<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>

以上都不适合我

最后更新

我检查了合并的 list ,其中一项服务包含此权限:

android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"

我只删除了这一行并开始工作(感谢 Snorlaxanswer google play 不再要求我工具填写表格,为什么我使用 AccessibilityService API。

最佳答案

您可以在无障碍服务的 list 文件的应用程序标签中声明

 <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 - 声明应用不是 AccessibilityTool 以符合 google play 要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70312896/

相关文章:

android - BottomNavigationView 不显示在底部,而是显示在顶部

android - 无法加载类型 'Android.OS.BaseBundle"

android - 如何在google play控制台正确填写权限声明表?

java - 辅助功能服务崩溃并且无法重新启动

java - 如何在 x 轴作为日期时间和 y 轴作为值之间绘制图表

android - Android 手机图标的开源版本

android - Google Play控制台,内部测试版本会从真实设备发送回分析数据,可以吗?

android - 将应用程序上传到游戏控制台时出错 - "Upload failed The Android App Bundle was not signed ."

Android:是否可以获取其他应用的通知信息?

java.lang.IllegalStateException : android.accessibilityservice.AccessibilityService.getSystemService(AccessibilityService.java:1602)