版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Jiang_Rong_Tao/article/details/79172582
最近接了个与TV开发相关的项目,采用AS自动生成的项目在模拟器上运行没问题,但是在电视真机上就是安装不上,跑不起来,我这还没有电视测试,测试还要去找朋友借设备,有点郁闷。
AS自动生成的manifest文件如下
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:banner="@drawable/app_icon_your_company"
android:theme="@style/Theme.Leanback">
<activity
android:name=".MainActivity"
android:icon="@drawable/app_icon_your_company"
android:label="@string/app_name"
android:logo="@drawable/app_icon_your_company"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
</activity>
</application>
与我们平常看到的项目不同的是category 的值LEANBACK_LAUNCHER,这是官方对TV启动的配置参数,用google的模拟器启动只要你配置了banner,在桌面上就能正常显示图标和打开;但是在国内的各大TV真机上还是又找不到图标无法打开的问题。为了解决这个问题我是全网搜索,但是网上TV开发的案例不多,而且都是和AS自动生成的代码类似,估计都是在Google的模拟器上测试的结果。无果,只能去sdk里面看官方文档了,我这没等级的英文水平居然找到了自己想要的答案。所以正确的manifest应该是下面的
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:banner="@drawable/app_icon_your_company"
android:theme="@style/Theme.Leanback">
<activity
android:name=".MainActivity"
android:icon="@drawable/app_icon_your_company"
android:label="@string/app_name"
android:logo="@drawable/app_icon_your_company"
android:screenOrientation="landscape">
<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>
</activity>
</application>
区别就是一行配置:
<category android:name="android.intent.category.LAUNCHER" />
也就是得用我们传统得启动配置。
学习正确的姿势还是得去看官方文档:…sdk/docs/training/tv/start/start.html#dev-project