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 界面中。


  • 2020-04-03 19:13:05

    Express-session的使用

    当浏览器访问服务器并发送第一次请求时,服务器端会创建一个 session 对象,生成一个类似于 key,value 的键值对,然后将 key(cookie)返回到浏览器(客户)端,浏览器下次再访问时,携带 key(cookie), 找到对应的 session(value)。 客户的信息都保存在 session 中

  • 2020-04-08 22:46:28

    Element的操作方法

    Element 是一个通用性非常强的基类,所有 Document 对象下的对象都继承自它。这个接口描述了所有相同种类的元素所普遍具有的方法和属性。一些接口继承自 Element 并且增加了一些额外功能的接口描述了具体的行为。例如, HTMLElement 接口是所有 HTML 元素的基本接口,而 SVGElement 接口是所有 SVG 元素的基础。大多数功能是在这个类的更深层级(hierarchy)的接口中被进一步制定的。

  • 2020-04-12 17:42:43

    Node.js设置CORS跨域请求中多域名白名单的方法

    在Node.js中,res的响应头Header中的 Access-Control-Allow-Origin 属性不能匹配除 (*) 以外的正则表达式的,域名之间不能也用逗号分隔。也就是说, Access-Control-Allow-Origin 的属性值只允许设置为单个确定域名字符串或者 (*)。

  • 2020-04-14 09:40:59

    CSS3实现文字描边的2种方法

    首先想到去看CSS3有没有什么属性可以实现,后来被我找到了text-stroke     该属性是一个复合属性,可以设置文字宽度和文字描边颜色      该属性使用很简单:text-stroke:1px #f00;(1px是文字宽度,#ff是文字描边颜色)

  • 2020-04-14 09:42:47

    用 TypeScript 编写 npm 模块

    自从开始使用 Node.js 已经一年多,写的代码越多,越是觉得自己提高的越慢。想来应该有没有将单一功能的代码封装在一个独立模块,而导致代码稍微多一点就维护困难的原因。

  • 2020-04-14 09:46:25

    TypeScript 入门教程

    TypeScript 是 JavaScript 的超集,扩展了 JavaScript 的语法,因此现有的 JavaScript 代码可与 TypeScript 一起工作无需任何修改,TypeScript 通过类型注解提供编译时的静态类型检查。 TypeScript 可处理已有的 JavaScript 代码,并只对其中的 TypeScript 代码进行编译。