Reputation: 11590
I am building a Xamarin Android App targeting the Amazon FireTV. When I upload the signed apk to the Amazon developer portal and review the supported devices list, I get the following message for all Fire TV hardware:
Your APK manifest requires capabilities not present on this device: android.hardware.touchscreen
Understandably the FireTV hardware does not support touch, so removing this capability seems reasonable. All other hardware devices are supported.
I can deploy and run the app just fine locally via adb, so the app itself has no problem running on the FireTV hardware.
At present, I have included the following within the manifest file in hopes of a different outcome, but to no avail:
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
<uses-feature android:name="android.hardware.faketouch" android:required="true" />
<uses-feature android:name="android.software.leanback" android:required="true" />
Is there anything else I can try to address this "touch screen feature" issue?
Upvotes: 1
Views: 535
Reputation: 1239
I believe the problem is because you have android.software.leanback required set to true. Amazon Fire TV devices don't necessarily have the lean back feature installed or set, unlike Android TV specific devices.
A complete list of features I have that will allow the app to run on Fire TV and Android TV devices (and any device that supports the TV feature):
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false"/>
<uses-feature
android:name="android.hardware.faketouch"
android:required="false"/>
<uses-feature
android:name="android.hardware.telephony"
android:required="false"/>
<uses-feature
android:name="android.hardware.camera"
android:required="false"/>
<uses-feature
android:name="android.hardware.nfc"
android:required="false"/>
<uses-feature
android:name="android.hardware.location.gps"
android:required="false"/>
<uses-feature
android:name="android.hardware.microphone"
android:required="false"/>
<uses-feature
android:name="android.hardware.sensor"
android:required="false"/>
<uses-feature
android:name="android.software.leanback"
android:required="false"/>
<uses-feature
android:name="android.hardware.type.television"
android:required="true"/>
<uses-feature
android:name="android.software.leanback_only"
android:required="false"/>
If you want it to run on devices with out the android.hardware.type.television (such as tablets) just remove that feature from the manifest entry. Otherwise it will restrict it to TV devices. I use the above settings in my production Android TV and Fire TV application.
Upvotes: 0