Android TV 包安装成功后找不到启动图标

2020-03-09 21:34:48

说明

要开发一款TV项目,使用 Android Studio 直接创建 TV 项目。

问题

生成APK文件,用U盘插入到小米盒子上,然后点击安装,提示安装成功

可是找不到启动图标,安装成功的弹窗也没有打开的选项。
而我之前测试装的一款手机应用是可以找到启动图标的。

PS :  小米盒子上已安装的应用,在  精选 > 我的应用  的路径下(正常情况下,安装的应用都在 我的应用 里,而我的新项目却找不到)

小米盒子已安装应用路径


处理

为此,我在特意安装了 TV管家 (当贝助手),应用卸载的列表里是可以看到此应用的。

至此,可以确定的是,应用安装成功,但是找不启动按钮。

解决

应该算是 Android Studio 创建默认 TV的一个bug,如下:

 <activity
            android:name=".ui.MainActivity"
            android:banner="@drawable/app_icon_your_company"
            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>

当 category 为 android.intent.category.LEANBACK_LAUNCHER 时,不展示启动图标。

改为和手机应用的一样就可以看到启动图标了,即 android.intent.category.LAUNCHER

如上代码,就可以找到启动图标,正常使用App了。

最后附上开发文档的一句话

注意:如果您不在应用中包含 CATEGORY_LEANBACK_LAUNCHER intent 过滤器,那么用户在 TV 设备上运行 Google Play 时将看不到您的应用。此外,如果您的应用没有此过滤器,那么当您使用开发者工具将其加载到 TV 设备上时,该应用不会出现在 TV 界面中。


  • 2018-12-13 22:48:48

    Android MultiDex实践:如何绕过那些坑?

    MultiDex, 顾名思义,是指多dex实现,大多数App,解压其apk后,一般只有一个classes.dex文件,采用MultiDex的App解压后可以看到有classes.dex,classes2.dex,… classes(N).dex,这样每个dex都可以最大承载65k个方法,很大限度地缓解了单dex方法数限制。

  • 2018-12-14 13:32:18

    解决chrome调试手机模式没有鼠标问题

    F12后,切换到手机模式,方向没有鼠标,这对于调试前端页面来说无疑是一大难题,看不见只能盲点, 以为是浏览器问题,清理缓存,升级浏览器,清除插件等都不好使。 后来查到资料说是显卡问题。果然还真是显卡问题。

  • 2018-12-14 17:12:51

    Android APP适配全面屏手机的技术要点

    全面屏是手机业界对于超高屏占比手机设计的一个宽泛的定义。从字面上解释就是,手机的正面全部都是屏幕,四个边框位置都是采用无边框设计,追求接近100%的屏占比。但受限于目前的技术,还不能做到手机正面屏占比100%的手机。现在业内所说的全面屏手机是指真实屏占比可以达到80%以上,拥有超窄边框设计的手机。

  • 2018-12-14 17:15:50

    Android适配刘海屏沉浸式状态栏的一些坑

    18年简直是刘海元年,所有手机都在跟风刘海屏,甚至每个厂商还有自己的一套适配规范。我的初始需求很简单,就是做一个全屏显示的页面,一般情况下只需要开启Android规范的全屏模式就好:

  • 2018-12-16 12:12:12

    android:windowSoftInputMode属性具体解释

    android:windowSoftInputMode属性一共同拥有9个取值。各自是: stateUnspecified,stateUnchanged。stateHidden,stateAlwaysHidden。stateVisible,stateAlwaysVisible,adjustUnspecified,adjustResize。adjustPan。

  • 2018-12-16 18:14:23

    Android在代码中设置状态栏半透明/全透明

    顶部是有文字,小图标等,如果直接用透明半透明 状态栏上的东西会与内容重叠(你觉得无所谓也可以直接用上面2部分代码),这样我们就想做成类似支付宝这样的效果: