最近公司业务需要经常需要做一些小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 应用之前,您必须:
- 将您的 SDK 工具更新为 24.0.0 或更高版本
利用更新后的 SDK 工具,您可以构建和测试 TV 应用。- 将您的 SDK 平台更新为 Android 5.0 (API 21) 或更高版本
更新后的平台版本提供了可创建 TV 应用的新 API。- 创建或更新您的应用项目
为了访问新增的 TV 设备 API,您必须创建一个项目或修改现有项目,使其以 Android 5.0(API 级别 21)或更高版本为目标平台。
都没问题
声明 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
- androidx.leanback.app
- androidx.leanback.database
- androidx.leanback.graphics
- androidx.leanback.media
- androidx.leanback.preference
- androidx.leanback.system
- androidx.leanback.widget
- androidx.leanback.widget.picker
看个人需要了。
网友评论