AndroidTV开发-实现APP开机自启动

@【实践帖】AndroidTV开发

场景

酒店房间的电视要求能开机后APP自启动。

设备

1.一台TCL智能电视,Android5.1.1系统
2.电视设为“酒店模式”,给apk安装造成一定困扰。(U盘安装、usb接笔记本用AS安装都搞不定)
3.电视在展厅,无法做到随时编译随时调试。(需要开发人员完成功能实现后,打包apk去展厅安装到TV端进行测试)

开机自启动的实现

目前,开机自启动的实现有两种方案:

  1. 通过监听到系统开机广播,触发APP启动程序

自定义一个广播接收器 AutoStartReceiver 继承 BroadcastReceiver 类,监听到系统开机广播后,启动我们的APP。在AndroidManifest.xml文件中进行相应权限的声明,以及广播接收器的注册。

优点:最直接有效的监听系统开机的方法

缺点:(1)如果APP安装在sd卡上,则无法监听到开机广播
(2)以Android手机为例,需要在“设置”中“自启动列表”中添加此APP
(3)部分Android手机开机时监听不到系统开机广播(实测努比亚NX511j,系统为Android5.0)

风险:针对不同品牌、型号,存在监听不到系统开机广播的风险,导致无法实现APP自启动。

  1. 通过监听SD卡挂载的广播,触发APP启动程序(针对APP安装在SD卡上的情况)

如果APP安装在SD卡上,是无法监听到开机广播的。这时需要监听SD卡挂载的广播。代码实现与方案一类似。

优点:有效解决APP安装在SD卡的情况

缺点:(1)使用场景仅局限于APP安装在SD卡上的场景
(2)如果系统运行中插入SD卡,也会触发SD卡挂载的广播,故建议与方案一结合使用

apk的安装

这个才是这篇文章的重点,文章开始介绍设备时说了,这是一台Android5.1.1系统的智能电视。因为酒店模式的原因,apk无法通过usb端口进行安装。我以为跟家里的电视一样,apk放在U盘里面,然后插上U盘,在“文件浏览器”中找到对应的apk文件,点击安装。实际现象是:toast显示识别不了文件。

后通过联系TCL厂商的工程师,知道了如何进入电视的“工厂模式”,以及如何安装apk:

1.进入工厂模式打开电视,在主界面上焦点移到“英文”,按遥控器“1950”,即可进入工厂模式。

2.ADB IP调试的准备:在工厂模式中依次进入Hotel menu ==> Android Settings。在“网络”菜单中确认是否连接上WIFI(与adb调试的笔记本连接的wifi相同),并打开已连接的wifi,查看IP。在“系统”菜单中焦点移至“内核版本”,连续点击遥控器中的“确认”按钮7次,即可打开开发者模式。在开发者选项中进行相关设置(与手机开发相同)。

3.ADB IP调试:装有AndroidStudio的笔记本连接wifi,打开Android studio进行adb调试。

4.附:相关adb调试命令
adb connect 10.8.12.87 //此IP为第2步中TV端连接到的wifi的IP
adb install [apk 安装包所在路径(如:d:\a.apk)]

总结

针对Android TV的开发,仍在继续。小菜也在踩坑中成长!

你可能感兴趣的:(实践帖)