我的应用程序仅支持 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 Player
和 Xiaomi 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 电视盒缺少麦克风或不提供供应用程序开发人员直接使用,则它不会声明它具有该系统功能...因此您的应用程序会阻止它。
据我所知,您的选择是:
与有限的受众进行直播,因为您的应用需要完整的麦克风访问权限
添加
<uses-feature>
元素说android.hardware.microphone
如果不需要,则仅在实际拥有麦克风的设备上使用麦克风(如果完整的麦克风访问权限对于您的应用来说不是必需的)完全消除麦克风的使用,这样您就可以删除
RECORD_AUDIO
寻找其他方式来处理语音输入,这样你就可以删除
RECORD_AUDIO
根据您的评论,我假设您选择了选项 #4。为了让遇到此问题的其他人受益,您可以考虑自己回答,更详细地解释您最初请求它的原因以及您认为不再需要它的原因。
关于android - 谷歌游戏控制台 : Android TV app unsupported on many devices,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44316469/