Android电视机顶盒开发(一)

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是端口号,可根据自己喜好设置)
在执行成功后如图:


image.png

然后拔出usb线,就可以畅享无线调试的乐趣了。
5从电视、机顶盒上拷贝文件到电脑
如拷贝到D://11文件夹


image.png

----------------------------------------------我是分隔线----------------------------------------------

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);
        }
    }

你可能感兴趣的:(Android电视机顶盒开发(一))