Android TV (二)(处理电视硬件)

来源:互联网 发布:本地连接网络使用率 编辑:程序博客网 时间:2024/04/27 17:32

官方地址 镜像地址

电视硬件基本上不同于其他Android设备。电视不包含一些硬件特性相比于其他电视设备,例如触屏、相机、GPS。电视也完全依赖于二次硬件设备。为了使用户和应用之间能够交互,必须使用远程遥或者游戏手柄。当你创建电视应用时,你必须仔细考虑硬件的局限性和操作电视硬件的要求。

检查电视设备

如果你创建的应用既操作电视设备也操作非电视设备,你可能需要检查你的应用当前运行在那种设备上来进行调整。例如,如果你有一个可以通过意图启动的应用程序,你的应用程序应该检查设备属性,以确定它是否应该启动面向电视的活动或电话活动。推荐的方法是使用UiModeManager.getCurrentModeType()方法来检查当前设备是否正以电视模式运行,以确定您的应用程序是否正运行在电视设备上。判断代码如下:

public static final String TAG = "DeviceTypeRuntimeCheck";UiModeManager uiModeManager = (UiModeManager) getSystemService(UI_MODE_SERVICE);if (uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION) {    Log.d(TAG, "Running on a TV Device")} else {    Log.d(TAG, "Running on a non-TV Device")}

处理不支持的硬件特性

根据你的应用程序的设计和功能,你可能围绕某些不可用的硬件特性工作。本节的主要内容为硬件特性通常不适用于电视,如何检测丢失的硬件功能,建议使用这些特性的替代品。

不支持电视的硬件特性

hardware.png

声明电视的硬件要求

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

声明包含硬件特性的权限

permission.png

检查硬件特性

下面的代码示例演示如何在运行时检测硬件特性的可用性:

// Check if the telephony hardware feature is available.if (getPackageManager().hasSystemFeature("android.hardware.telephony")) {    Log.d("HardwareFeatureTest", "Device can make phone calls");}// Check if android.hardware.touchscreen feature is available.if (getPackageManager().hasSystemFeature("android.hardware.touchscreen")) {    Log.d("HardwareFeatureTest", "Device has a touch screen.");}
阅读全文
0 0
原创粉丝点击