支持 Android TV 并重用 main Activity
Posted
技术标签:
【中文标题】支持 Android TV 并重用 main Activity【英文标题】:Supporting Android TV and reusing main activity 【发布时间】:2016-02-25 21:06:55 【问题描述】:我希望 android TV 支持我的应用(该应用目前支持手机和平板电脑)
主要活动非常基本,虽然它确实有两个文本输入(用于帐户登录),但我确信它可以在 Android TV 上使用(似乎可以在模拟器上运行,但要在真正的 Android TV 上进行测试)。
那么在这种情况下,在我的清单中,我应该为LAUNCHER
和LEANBACK_LAUNCHER
设置一个意图吗?
或者我应该只为LEANBACK_LAUNCHER
设置意图?
【问题讨论】:
如果你想为两种形式使用一个活动,是的,你可以设置两个意图过滤器。 【参考方案1】:您需要指定两个类别:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
顺便说一句,不建议使用相同的活动布局:
如果您正在修改现有应用以在电视上使用,您的应用应该 不要对电视使用与手机相同的活动布局,并且 片剂。您的电视应用程序的用户界面(或您的电视部分 现有的应用程序)应该提供一个更简单的界面,可以很容易地 在沙发上使用遥控器进行导航。有关指南 为电视设计应用程序,请参阅TV Design 指南。了解更多信息 关于界面布局的最低实现要求 电视,见Building TV Layouts。
参考:http://developer.android.com/training/tv/start/start.html#tv-activity
【讨论】:
是的,但是 OP 可以将电视布局放在layout-television
资源文件夹中,或者使用 UIManager
类来更改 Activity 的运行方式(如果它是电视)。
老实说,主要活动的界面非常简单。它目前是一个基本的登录表单,但在不久的将来,我将使用网络应用程序将其更改为“无钥匙”PIN 码登录系统(我已经将这种方法用于 webOS 应用程序)
当然,我只是提醒一下 Android TV 指南。在您的情况下,您可以指定答案中所述的两个类别。【参考方案2】:
不要忘记“声明 Leanback 支持”
来自开发者网站“如果您正在开发在移动设备(手机、可穿戴设备、平板电脑等)以及 Android TV 上运行的应用程序,请将 required
属性值设置为 false。如果您将 required
设置为属性值设为 true,您的应用将仅在使用 Leanback UI 的设备上运行。”
<manifest>
<uses-feature android:name="android.software.leanback"
android:required="false" />
...
【讨论】:
以上是关于支持 Android TV 并重用 main Activity的主要内容,如果未能解决你的问题,请参考以下文章
Android Studio 上对 Android TV 的 Play 商店支持
android tv lollipop 支持 WebRTC 吗?
仅适用于 Android TV 的 Android 清单 - 支持的设备太少?