TV应用入门

文章讲述了如何使应用适应TV平台,包括在清单文件中声明CATEGORY_LEANBACK_LAUNCHER以被GooglePlay识别为TV应用,设置uses-feature来允许在不同设备上运行,提供主屏幕横幅图像,并处理不支持的硬件功能,如声明触摸屏非必备。此外,还强调了在没有触摸屏的TV设备上创建方向键导航的重要性。
摘要由CSDN通过智能技术生成

1、声明为TV应用

使用 CATEGORY_LEANBACK_LAUNCHER intent 过滤器标识为支持 TV 平台,并让 Google Play 将其识别为 TV 应用。在清单文件中声明,并会将对应的activity作为启动activity。

声明 Leanback 支持

清单文件将required 属性值设为 false,手机、平板和Android tv上都能运行。将 required 属性值设为 true,应用只能在使用 Leanback 界面的设备上运行。

<uses-feature
        android:name="android.software.leanback"
        android:required="true" />

将触摸屏声明为非必备条件

清单必须声明 android.hardware.touchscreen 功能为非必备功能,如

    <manifest>
        <uses-feature android:name="android.hardware.touchscreen"
                  android:required="false" />
        ...
    </manifest>

提供主屏幕横幅

Leanback应用必须针对每种本地化语言提供一张主屏幕横幅图片。横幅是显示在主屏幕上的图标。横幅应该是 xhdpi 资源,尺寸为 320 x 180 像素。

  <application
        android:allowBackup="false"
        android:banner="@drawable/videos_by_google_banner"

处理不支持的硬件功能

不支持的 TV 硬件功能

TV 的用途不同于其他设备,因此它们没有其他 Android 设备通常具备的硬件功能。因此,Android 系统在 TV 设备上不支持以下功能:

 声明对 TV 的硬件要求

在应用清单中声明硬件功能要求,确保不会将其安装在不提供这些功能的设备上。如果您的应用使用了 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"/>    

创建方向键导航

Android tv设备不支持触摸屏,通过遥控器设备上的按钮进行导航。Android 框架会自动处理布局元素之间的方向导航,也可以使用显式导航属性。下表列出了 Android 界面微件的所有可用导航属性:

当应用获取到焦点选中应 实现针对获得焦点的控件和选定控件的突出显示,

    <!-- res/drawable/button.xml -->
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="true"
              android:drawable="@drawable/button_pressed" /> <!-- pressed -->
        <item android:state_focused="true"
              android:drawable="@drawable/button_focused" /> <!-- focused -->
        <item android:state_hovered="true"
              android:drawable="@drawable/button_focused" /> <!-- hovered -->
        <item android:drawable="@drawable/button_normal" /> <!-- default -->
    </selector>    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值