如何通过删除触摸屏功能来支持Amazon FireTV硬件

时间:2018-10-02 18:17:56

标签: android xamarin.android amazon-fire-tv android-hardware-touchscreen

我正在构建针对Amazon FireTV的Xamarin Android应用。当我将签名的APK上传到 Amazon开发人员门户并查看受支持的设备列表,我收到以下消息 对于所有Fire TV硬件:

  

您的APK清单需要此设备上不具备的功能:   android.hardware.touchscreen

可以理解,FireTV硬件不支持触摸,因此删除此功能似乎是合理的。支持所有其他硬件设备。

我可以通过adb在本地部署和运行该应用程序,因此该应用程序本身在FireTV硬件上运行没有问题。

目前,清单文件中包含以下内容,以期获得不同的结果,但无济于事:

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

我还能尝试解决此“触摸屏功能”问题吗?

1 个答案:

答案 0 :(得分:0)

我相信问题是因为您将android.software.leanback必需设置为true。与Android TV专用设备不同,Amazon Fire TV设备不一定已安装或设置了向后倾斜功能。

我拥有的功能的完整列表,可让该应用程序在Fire TV和Android TV设备(以及支持电视功能的任何设备)上运行:

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

如果您希望它在没有android.hardware.type.television的设备(例如平板电脑)上运行,只需从清单条目中删除该功能。否则它将限制在电视设备上。我在生产的Android TV和Fire TV应用程序中使用了上述设置。