Android电视机顶盒开发相比手机端的开发来说,个人认为最大的不同还是在交互体验上,手机端都是很直观的用手点击即可,而电视是通过遥控器控制。那么在交互展示上面,电视做出来的效果就要明显提示。这样才有一个比较好的用户体验。好的,废话不多说。
1.开发好的App如何像手机一样调试呢?
答:可以使用wifi连接的方式进行调试,(当然同一局域网下,有线更稳定更快哦)
电脑cmd连接与断开电视、机顶盒:adb connect ip(电视、机顶盒ip)、adb disconnect ip;
2.如何安装apk文件
答:控制台输入:adb install D://xx//xx(这里为应用存放路径,可直接拖到控制台)
3.其他一些常用操作指令
3.1查看电视、机顶盒分辨率:adb shell wm size;
3.2杀死adb 服务:adb kill -server;
3.3卸载应用程序:adb uninstall 程序包名
3.4:向应用程序输入文字:adb shell input text *******
4.如上面指令连接手机或平板失败可以尝试如下方法(大部分机顶盒厂家把开发通道关闭,需沟通开启):
4.1用数据线连接
连接成功后在控制台输入:adb tcpip 5555 (5555是端口号,可根据自己喜好设置)
在执行成功后如图:
然后拔出usb线,就可以畅享无线调试的乐趣了。
5从电视、机顶盒上拷贝文件到电脑
如拷贝到D://11文件夹
----------------------------------------------我是分隔线----------------------------------------------
1.电视、机顶盒焦点控制。
1.2设置焦点监听 view.setOnFocusChangeListener();
设置获取焦:view.setFocusable(true);
view.requestFocus();
2遥控器按键监听
//监听按键按下
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
Log.e("keyCode", "--------" + keyCode + "--------");
isClickBack = false;
switch (keyCode) {
case KeyEvent.KEYCODE_0:
Log.e("main", "--------0--------");
znTvFragment.playTv(0);
break;
case KeyEvent.KEYCODE_1:
Log.e("main", "--------1--------");
znTvFragment.playTv(1);
break;
case KeyEvent.KEYCODE_2:
Log.e("main", "--------2--------");
znTvFragment.playTv(2);
break;
case KeyEvent.KEYCODE_3:
Log.e("main", "--------3--------");
znTvFragment.playTv(3);
break;
case KeyEvent.KEYCODE_4:
Log.e("main", "--------4--------");
znTvFragment.playTv(4);
break;
case KeyEvent.KEYCODE_5:
Log.e("main", "--------5--------");
znTvFragment.playTv(5);
break;
case KeyEvent.KEYCODE_6:
Log.e("main", "--------6--------");
break;
case KeyEvent.KEYCODE_7:
Log.e("main", "--------7--------");
break;
case KeyEvent.KEYCODE_8:
Log.e("main", "--------8--------");
break;
case KeyEvent.KEYCODE_9:
Log.e("main", "--------9--------");
break;
case KeyEvent.KEYCODE_DPAD_UP://向上
Log.e("main", "--------向上--------");
break;
case KeyEvent.KEYCODE_DPAD_DOWN://向下
Log.e("main", "--------向下--------");
break;
case KeyEvent.KEYCODE_DPAD_LEFT://向左
Log.e("main", "--------向左--------");
break;
case KeyEvent.KEYCODE_DPAD_RIGHT://向右
Log.e("main", "--------向右--------");
break;
case KeyEvent.KEYCODE_DPAD_CENTER:
case KeyEvent.KEYCODE_ENTER://确定
Log.e("main", "--------确定--------");
lin_tv_left.setVisibility(View.VISIBLE);
lin_kefang.setFocusable(true);
lin_kefang.requestFocus();
waitTime = 0;
break;
case KeyEvent.KEYCODE_BACK://返回
Log.e("main", "--------返回--------");
backListener();
isClickBack = true;
break;
case KeyEvent.KEYCODE_HOME://Home
Log.e("main", "--------Home--------");
break;
case KeyEvent.KEYCODE_MENU://菜单
Log.e("main", "--------菜单--------");
break;
case 166:
Log.e("main", "--------节目加--------");
if (index < 2) {
index++;
znTvFragment.playTv(index);
}
break;
case 167:
Log.e("main", "--------节目减--------");
if (index > 0) {
index--;
znTvFragment.playTv(index);
}
break;
}
if (isClickBack) {
return false;
} else {
return super.onKeyDown(keyCode, event);
}
}