美文网首页IPTV机顶盒开发之不断爬坑
Android电视机顶盒开发(一)

Android电视机顶盒开发(一)

作者: 白兔糖丶 | 来源:发表于2019-09-30 16:50 被阅读0次

    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电视机顶盒开发(一)

        本文链接:https://www.haomeiwen.com/subject/ogxfpctx.html