Android Develops:处置在电视上不支持的功能

Android Develops:处理在电视上不支持的功能电视远不同于其它Android设备: 它们不是移动电话。 处于习惯,用

Android Develops:处理在电视上不支持的功能

电视远不同于其它Android设备: 

  • 它们不是移动电话。 

  • 处于习惯,用户使用很少它们观看媒体,或者没有交互。 

  • 任何在一定距离外和它们进行交互。 

    因为电视和其它设备有着不同的目的,它们通常没有其它Android设备都有的硬件功能。由于这个原因,Android系统对电视设备不支持下面的功能: 

    硬件 

    Android功能描述符号 

    照相机 

    android.hardware.camera 

    GPS 

    android.hardware.location.gps 

    麦克风 

    android.hardware.microphone 

    进场通讯(NFC) 

    android.hardware.nfc 

    电话 

    android.hardware.telephony 

    触摸屏 

    android.hardware.touchscreen 

    这节课程向你展示了如何解决在电视上不可用的功能问题: 

    • 提供要解决的不支持的功能。 

    • 检查在运行时支持的功能,并且根据这些功能的可用性,有条件的激活/停用整个代码路径。 

       

      解决在电视上不支持的功能 

      —————————————————————————————————————————————————————————— 

      Android对电视设备不支持触屏交互,大部分电视没有触摸屏,并且使用触摸屏和电视交互不符合100英寸的环境。由于这些原因,用户使用遥控和Andorid电视交互。考虑到这一点,确保你的应用中的所有控件使用D-pad能被访问。回顾前面两节课程Optimizing Layouts for TV和Optimize Navigation for TV查看关于这个主题的更多信息。Android系统假设设备有一个触摸屏,所以如果你想你的应用程序运行在电视上,你必须在你的清单文件中明确的取消触摸屏要求: 

      尽管电视没有照相机,你仍然可以在电视上提供关于照相的应用。例如,如果你又一个拍摄、查看和编辑照片的应用,你可以针对电视禁止它的拍照功能,并且仍然允许用户查看和编辑照片。下一节会谈到关于如何基于运行的设备类型的检测,禁止或激活在应用程序中的特定功能。 

      因为电视是静止的,室内设备,它们没有内置GPS。如果你的应用程序使用定位信息,在电视设置中配置,允许用户搜索一个位置,或者使用“静态”位置提供者从压缩码中获取位置。 

      电视通常不支持麦克风,但是如果你又一个使用了声控的应用程序,你能开发一个移动设备app获取声音输入,然后作为电视的一个远程控制。 

       

      在运行时检测可用的功能 

      —————————————————————————————————————————————————————————————

      检测一个功能在运行时是否可用,调用hasSystemFeature(String)。这个方法拥有一个参数:一个你想检测的功能相应的字符串。例如,检测触摸屏,使用FEATURE_TOUCHSCREEN参数调用hasSystemFeature(String)。 

      下面的代码段演示了如何基于支持的功能在运行时检测设备类型: 

      这仅仅是一个运行时基于电视不支持特色的检测,来禁止应用功能的一个例子。