android - 谷歌游戏控制台 : Android TV app unsupported on many devices

标签 android google-play android-tv leanback google-play-console

我的应用程序仅支持 Android TV 设备。我已使用以下 AndroidManifest.xml 将其上传到 Google Play 开发者控制台:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />

<uses-feature
    android:name="android.hardware.touchscreen"
    android:required="false" />
<uses-feature
    android:name="android.software.leanback"
    android:required="true" />

<application
    android:name=".MediaApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/Theme.Leanback">
    <activity
        android:name=".presentation.main.MainActivity"
        android:banner="@drawable/app_icon"
        android:icon="@drawable/app_icon"
        android:label="@string/app_name"
        android:logo="@drawable/app_icon"
        android:screenOrientation="landscape">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
        </intent-filter>
    </activity>

问题是,目前它仅显示 28 个受支持的设备以及我用于测试应用程序的设备,例如 Nexus PlayerXiaomi Mi Box 3显示为不受支持,并显示消息:

This device model is not supported in your app's APK manifest and hence users of this device model cannot install your app.

其他流行的 Android TV 设备(例如 Nvidia Shield TV)也不受支持。对我来说,AndroidManifest.xml 中的所有内容似乎都是正确的,并且所有 Activity 都使用 android:screenOrientation="landscape"。知道为什么它不适用于此类设备吗?

最佳答案

RECORD_AUDIO许可是为了不受限制地使用麦克风。某些形式的语音输入,尤其是通过 Play 服务等平台附加组件时,可能不需要该许可。我还没有玩过语音输入和 Android TV,但至少曾经有一次,应用程序无法访问某些 Fire TV Remote 上的麦克风,因为这是为系统级语音搜索/Alexa 命令保留的。

RECORD_AUDIO 的陷阱这意味着您需要 android.hardware.microphone系统功能。如果 Android 电视盒缺少麦克风或不提供供应用程序开发人员直接使用,则它不会声明它具有该系统功能...因此您的应用程序会阻止它。

据我所知,您的选择是:

  1. 与有限的受众进行直播,因为您的应用需要完整的麦克风访问权限

  2. 添加<uses-feature>元素说 android.hardware.microphone如果不需要,则仅在实际拥有麦克风的设备上使用麦克风(如果完整的麦克风访问权限对于您的应用来说不是必需的)

  3. 完全消除麦克风的使用,这样您就可以删除RECORD_AUDIO

  4. 寻找其他方式来处理语音输入,这样你就可以删除 RECORD_AUDIO

根据您的评论,我假设您选择了选项 #4。为了让遇到此问题的其他人受益,您可以考虑自己回答,更详细地解释您最初请求它的原因以及您认为不再需要它的原因。

关于android - 谷歌游戏控制台 : Android TV app unsupported on many devices,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44316469/

相关文章:

AndroidTV - 为 X 行数自定义 ListRow。失去焦点

android - Android TV 中以太网 (RJ45) 和 USB 的广播接收器

php - 尝试初始化 JSONObject 时出现 Android ResponseListener JSON 错误

android - ImageView 缩放到固定高度,但裁剪多余的宽度

google-play - 可以在应用程序之间共享托管的InApp计费购买

android - Play 商店中的促销图片和特色图片有什么区别

Flutter 如何制作可选择/可聚焦的小部件

android - 您可以通过移动连接通过市场下载的最大文件大小是多少?

java - FTP zip 上传有时会损坏

android - 如何将 Google Play 发布前报告与 expo/react-native 结合使用