android 电视开发硬件都需要什么,【Android TV】开发前你需要了解的这些事

本文介绍了在开发Android TV应用时需要注意的硬件特性,如触摸屏、电话、相机等在TV端通常不支持,并提供了检测是否为TV环境的代码。此外,讨论了控制器断开重连的问题及其解决方案,强调了在AndroidManifest中正确声明硬件需求的重要性,以确保应用能在不同智能电视上顺利运行。
摘要由CSDN通过智能技术生成

原创不易,尊重作者,转载请注明出处

前言

如果你初步开发TV端,那么你首先需要了解一些有关Android TV APP小知识点。

目录

对电视硬件的认知

检查APP运行的环境是否是TV端

通常TV端不支持的硬件特性

控制器断开重连

对电视硬件的认知

不同于在手机上开发App,大多数电视没有手机那么多丰富的硬件特性,例如触屏、摄像头、GPS等功能,我们在使用电视时,一般都是借助遥控器或游戏手柄等外设。当我们开发TV端的App时,需要考虑电视的硬件支持。

检查APP运行的环境是否是TV端

/**

* 是否运行在TV端

* @param context

* @return

*/

public static boolean isRunTvClient(Context context) {

UiModeManager uiModeManager = (UiModeManager) context.getSystemService(Context.UI_MODE_SERVICE);

return uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION;

}

TV端可能不支持的硬件特性

如下表所示:

功能

硬件

描述符号

触摸屏

Touchscreen

android.hardware.touchscreen

模拟点击

Touchscreen emulator

android.hardware.faketouch

电话

Telephony

android.hardware.telephony

相机

Camera

android.hardware.camera

NFC

Near Field Communications

android.hardware.nfc

定位

GPS

android.hardware.location.gps

麦克风

Microphone

android.hardware.microphone

传感器

Sensors

android.hardware.sensor

纵向屏幕

Screen in portrait orientation

android.hardware.screen.portrait

Tips:智能电视一般遥控器会有麦克风,不同于电视中的麦克风硬件,遥控器的麦克风是完全支持的,家里有智能电视的朋友应该更清楚。

如果我们的App只是在TV端运行,那么在开发中,我们应该检查AndroidManifest,因为如果在AndroidManifest中有申明了电视不支持的特性,那么很有可能会阻止安装在TV端上。我们可以通过以下代码来申明不使用该硬件特性。

android:name="android.hardware.touchscreen"

android:required="false" />

android:name="android.hardware.faketouch"

android:required="false" />

android:name="android.hardware.telephony"

android:required="false" />

android:name="android.hardware.camera"

android:required="false" />

android:name="android.hardware.nfc"

android:required="false" />

android:name="android.hardware.location.gps"

android:required="false" />

android:name="android.hardware.microphone"

android:required="false" />

android:name="android.hardware.sensor"

android:required="false" />

随着电视硬件的升级,有些硬件特性被应用在智能电视端中,例如摄像头、麦克风功能等(例如华为智慧屏),那么当我们需要使用某些特性时,就需要手动去检查是否支持,这样才能适配不同的电视端。

/**

* 如果TV端支持摄像头

*/

if (context.getPackageManager().hasSystemFeature("android.hardware.camera")) {

} else {

}

控制器断开重连

大多数智能电视的遥控器或者游戏手柄都是蓝牙连接,这些设备可能为了省电在一定时间无操作的情况下会进入睡眠模式导致与TV端断开连接。如果我们没有处理连接事件,这可能会导致我们的App被中断或重启,以下方式是常见的断开情景:

看视频电影时

等待游戏开始时,另一名玩家使用是不同的游戏控制器

当在游戏中时,玩家离开游戏并断开游戏控制器

解决办法也很简单,我们可以在AndroidManifest中对Activity通过configChanges配置相应的变化

android:configChanges="navigation"

android:theme="@style/AppTheme">

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值