Tv开发 Google 官方demo leanback遇到的问题

今天在跑Google针对tv开发出点框架 Leanback的时候,遇到一个问题,就是桌面上没有该appicon.刚开始以为安装不成功。后来发现是。桌面上没有该app的icon.这个问题以前也没有遇到过,仔细看了下。xml文件里面有icon。也有logo就是桌面没有显示这个。后来又猜测是不是没有label。加上去还是不显示。。最后在xml里面看到这么一段:

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


百度下其作用:

解释如下:

touchscreen为false,即TV app 不需要触摸
android.software.leanback:仅仅在TV上运行设置为true,在TV和phone上运行设置为false 

所以在就把这三个值都修改为false.运行发现还是没显示,后又发现启动页是这么写的:

 <activity
            android:name=".ui.MainActivity"
            android:icon="@drawable/videos_by_google_banner"
            android:label="@string/app_name"
            android:logo="@drawable/videos_by_google_banner"
            android:screenOrientation="landscape"
            android:theme="@style/Theme.Leanback.Browse">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
            </intent-filter>
        </activity>

和我们普通的写法不一样。我们普通的写法应该是:

    <activity
            android:name=".ui.MainActivity"
            android:icon="@drawable/videos_by_google_banner"
            android:label="@string/app_name"
            android:logo="@drawable/videos_by_google_banner"
            android:screenOrientation="landscape"
            android:theme="@style/Theme.Leanback.Browse">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
可以看到
  <category android:name="android.intent.category.LAUNCHER" />

这个不同。查了下:原来:

运行在电视设备端的Activity需要声明CATEGORY_LEANBACK_LAUNCHER 意图过滤器声明,这样可以保证
Google Play能够认定我们的app为电视版,同时,当我们在电视上选择我们的应用图标时,就会进入到
我们声明CATEGORY_LEANBACK_LAUNCHER的Activity与Android手机一致。

因为我是在模拟器上跑的。不是真正意义上的机顶盒。故lancher这个应用显示不出来。我们只需要修改成:

 <activity
            android:name=".ui.MainActivity"
            android:icon="@drawable/videos_by_google_banner"
            android:label="@string/app_name"
            android:logo="@drawable/videos_by_google_banner"
            android:screenOrientation="landscape"
            android:theme="@style/Theme.Leanback.Browse">
            <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>

即可。运行。还是没显示。觉得很奇怪。最后想下会不会是因为我们没有删除之前的app。故在Lancher桌面程序读的还是我们第一次安装时候的。删掉重新安装。。再次运行。桌面有了图标。

至此问题解决了:

完整的xml:

扫描二维码关注公众号,回复: 2759320 查看本文章
 <uses-feature
        android:name="android.hardware.microphone"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.touchscreen"
        android:required="false" />
    <uses-feature
        android:name="android.software.leanback"
        android:required="false" />

    <application
        android:allowBackup="false"
        android:banner="@drawable/videos_by_google_banner"
        android:icon="@drawable/app_icon_quantum"
        android:label="@string/app_name"
        android:logo="@drawable/videos_by_google_banner"
        android:theme="@style/Theme.Leanback">
        <activity
            android:name=".ui.MainActivity"
            android:icon="@drawable/videos_by_google_banner"
            android:label="@string/app_name"
            android:logo="@drawable/videos_by_google_banner"
            android:screenOrientation="landscape"
            android:theme="@style/Theme.Leanback.Browse">
            <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>

哎。。心好累。。不想做tv开发。。。因为没做过。所以心里没底,也不知道遇到问题该请教谁。。心里好慌。。加油吧。。

每日语录:

深山的鹿,不知归处。 
万般皆苦,只可自渡。。。
单曲循环《凤凰花开的路口》
加油!!!!



猜你喜欢

转载自blog.csdn.net/androidzmm/article/details/79654382