Android TV开发踩坑指南

最近公司业务需要经常需要做一些小app。
比如最近又需要做一款图片轮播的app。

和所有需求一样,一开始不复杂,做着做着,需求就开始变多了。
本来只是需要简单的轮播,后续出现了需要动态配置,单门店不同电视机,显示方式不同等。

好嘛,开发app本身不复杂,接入阿里云。
想法很简单,根据对应的门店id_电视编号,遍历对应的文件夹(当然阿里云描述的是本身服务器是没有文件夹的概念的,采用了名字去制造了一个伪文件夹的概念,其实文件都是按照平铺的方式存储在对应的bucket)。
跟运维协商好,使用那个目录,然后配置好对应用户和policy权限,以及服务权限,这三者缺一不可。

这里使用Java列举接口对指定文件夹进行遍历。

好了app运行ok。

然后手机测试ok。

简单的很....
最后发送给海外的小伙伴放到电视上运行,翻车,App Not installed?

哦哦哦~~~明白这么简单的app还能翻车,一般这种情况是因为签名版本问题,或者系统兼容问题。
查看minsSDKVersion,
嗯,果然设置的很高,是26。这么说至少android 8才能使用,看视频里电视的画面这么渣可能android 8都没有。

让海外小伙伴看了下系统版本Android 11,什么鬼?

签名有问题换一个试试,默认都是v2签名开启,不应该啊。重新建个项目打个包过去,可以了。好吧重写项目。看起来这个TV app比我想的麻烦。

这次安装成功了,But,又翻车了.


img_v2_84208b2a-3d92-4f79-954b-7f9ef5c2276g.jpg

居然不显示我app的图标,按道理不应该啊,桌面app按照啥规则去过滤了app列表。
不偷懒了,打开GoogleTV开发文档仔细研读一下。

在开始构建 TV 应用之前,您必须:

都没问题

声明 TV Activity。所以还得声明TV?

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

holy sheet.

声明您的应用使用 Android TV 所要求的 Leanback 界面。如果您要开发一款在移动设备(手机、穿戴式设备、平板电脑等)以及 Android TV 上都可运行的应用,请将 required 属性值设为 false。如果您将 required 属性值设为 true,您的应用将只能在使用 Leanback 界面的设备上运行。

    <manifest>
        <uses-feature android:name="android.software.leanback"
            android:required="false" />
        ...
    </manifest>

最后还得加个这东西。


image.png

最后不加banner属性的话就会显示成上面那个熊样了。

<application
        ...
        android:banner="@drawable/banner" >

        ...
    </application>

然后TV还有很多便捷的api

看个人需要了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容