My application supports only Android TV
devices. I've uploaded it to Google Play Developers Console
with the following AndroidManifest.xml
:
<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>
The problem is, that currently it shows only 28 supported devices and devices I've used for testing the application, such as Nexus Player
and Xiaomi Mi Box 3
are displayed as unsupported with the message:
This device model is not supported in your app's APK manifest and hence users of this device model cannot install your app.
Other popular Android TV
devices like Nvidia Shield TV
are also unsupported. Seems to be like everything is correct in AndroidManifest.xml
for me and all activities use android:screenOrientation="landscape"
. Any ideas why is it unavailable for such devices?
The RECORD_AUDIO
permission is for unfettered use of the microphone. Certain forms of voice input, particularly when through platform add-ons like Play Services, might not require that permission. I haven't played with voice input and Android TV, but at least once upon a time, apps had no access to the microphone on select Fire TV remotes, as that was reserved for system-level voice search/Alexa commands.
The catch with RECORD_AUDIO
is that it implies that you need the android.hardware.microphone
system feature. If an Android TV box either lacks a microphone or does not offer it for direct use by app developers, it will not declare that it has that system feature... and therefore your app would block it.
AFAIK, your options are:
Live with the limited audience, because your app needs complete microphone access
Add a <uses-feature>
element to say that android.hardware.microphone
is not required, then only use the microphone on devices that actually have one (if complete microphone access is not essential for your app)
Eliminate microphone usage entirely, so you can drop RECORD_AUDIO
Find some other way to handle voice input, so you can drop RECORD_AUDIO
From your comment, I assume that you chose option #4. For the benefit of others encountering this question, you might consider answering it yourself, explaining in greater detail why you were requesting it originally and why you feel that you no longer need it.