设为首页   漳州热线欢迎您~!
漳州热线 > 资讯 > 正文

开发电视盒子的极简Android TV桌面!

电视盒子必然取代有线电视,但是普遍广告太多、预装的APP太多、存储又小、看电视直播也有一定限制, 都不尽如人意。很多第三方rom、桌面也没比自带的好多少!“一气之下(闲的没事)”自己搞吧。

下面一步步介绍,用简单的方法,开发极简实用的电视盒子桌面。

必备条件,需要是个程序员,水平不用太高。但不会编程也没必要往下看了。

  1. Android Studio
  2. ADB
  3. Debloater
  4. 双头USB线
开发电视盒子的极简Android TV桌面

双头USB线,这个名称专业,看图说话吧

自己做也很简单,网上买也很便宜,这里不多说,随便那搜搜就有。

首先, Android Studio 新建项目

开发电视盒子的极简Android TV桌面

选择"TV", "Android TV Activity", "Next(下一步)"

开发电视盒子的极简Android TV桌面

项目名称,随你爱好,"Minimum API level" 建议选择 API22: android 5.1(Lollipop),很多盒子的系统都是基于Android 5.1系统的,如果选高本版兼容性有问题。

然后“Finish(完成)”,就完成了。

等待各种下载之后就可以运行了。

开发电视盒子的极简Android TV桌面

运行

没有改动任何编码,没有其他意外的情况下,用模拟器运行就是这个样子的,Android TV的原生界面。

这样装进盒子,就可以用,只是什么也看不了,也没有任何功能。

通过最简单改动,来实现最基本功能。

  1. 实现第一个功能,看“直播”

打开 Java -> 包名(我的项目 demo.tv.myapplication )-> MovieList 文件。

程序员一看就应该明白了!

去网上找直播源吧 :)

2.实现第二个功能,也是重要的功能,打开APP。

这个需要编点程序,到也很简单,直接贴段核心代码

public ArrayList getAll(Context context) {
ArrayList all = new ArrayList();
PackageManager pm = context.getPackageManager();
/**
* 返回所有
*/
ArrayList applicationInfos = (ArrayList) pm.getInstalledApplications(0);
for (ApplicationInfo info : applicationInfos) {
if ((info.flags & info.FLAG_SYSTEM) != 0) {
AppInfo app = new AppInfo();
ApplicationInfo appInfo;
try {
appInfo = context.getPackageManager().getApplicationInfo(info.packageName, PackageManager.GET_META_DATA);
String activityName = info.name;
String appName = appInfo.loadLabel(context.getPackageManager()) + "";
app.setTitle(appName);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
// 图标
app.setIcon(info.loadIcon(pm));
app.setPackagename(info.packageName);
all.add(app);
}
}
return all;
}

在 AndroidManifest.xml文件中添加几项。







用到的权限别忘了


源码此文不详细介绍,能看明白的,自然能明白。之后有专门文章详细讲解真正有用的Android TV桌面开发。

至此,极简桌面核心功能就开发完成了。

通过“双头USB线”,链接盒子与电脑,打开盒子的开发模式,打开ADB调试,不同盒子具体方法不太一样,去搜索一下自己盒子的方法就可以。

正确连接后,电脑会自动安装驱动,如果盒子没有被识别,需要在电脑下载个手机助手之类的软件,一般就能正确驱动,之后再把手机助手删除。

开发电视盒子的极简Android TV桌面

运行环境 选择菜单

驱动成功后,Android Studio 运行环境菜单中,会有你的盒子的选项,选中后运行程序,APK也就安装进盒子了,不用单独打包后安装。

此时,大多数盒子会运行此程序,但是并未成为默认桌面应用,程序退出后,还是会回到自带的桌面。那么就用到了另一个软件 Debloater。

打开 Debloater(具体方法很简单,网上很多) , 链接成功后,你会看到非常多的应用, 会更讨厌这些盒子的厂商, 因为商业原因, 安装了非常多没用的、重复的应用。Debloater 是用来“冻结”(不删除)应用的,你可以把没用的应用都冻结,不过有风险,一些核心应用被冻结,你就要去恢复出厂设置,甚至刷机了。跟此文有关的,最重要的是冻结系统自带的桌面应用,根据自己盒子,搜一下哪个是吧,通过包名其实也能看出来。

自带的桌面被冻结后,盒子可能会黑屏一下,之后,你开发的桌面就显示出来了,而且再按返回桌面按钮或重启,都会进入你开发的桌面了。

此文简略介绍至此,在非root情况下最简单的Android TV桌面开发完成。已经是可用的,不过我也是很久前这样搞的,有些细节不详细,此文仅供参考。之后文章我会详细介绍完整的Android TV桌面开发。

推荐阅读:扬州之声