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

官方地址 镜像地址

电视硬件基本上不同于其他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.");
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,821评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,837评论 18 139
  • 希望我能做到每日一更 做一个简叔哦不 简书 上的御用画霸 哦哈哈哈红红火火恍恍惚惚
    姜鸣阅读 250评论 0 1
  • 最近在项目中需要使用UITextField作为密码输入框,并进行明文/密文切换。在进行代码编写的时候,遇到了一些问...
    天蝎洋芋阅读 8,828评论 13 25
  • 有些妈妈说:我家宝宝听到音乐就不自觉地动起来,虽然有时候跟不上节拍,但还有模有样的,很欢乐的样子。是不是很有音...
    未央之雨阅读 274评论 0 0