欢迎访问我的网站,希望内容对您有用,感兴趣的可以加入免费知识星球。

Android TV中的组合按键应用

Android 迷途小书童 4年前 (2020-01-03) 2975次浏览 0个评论

软硬件环境

  • OTT Box 5.1.1
  • Android studio 3.0.1

前言

在做Android TV开发时,经常会将一些对系统或者是app的设置独立出来,用一种相对隐秘的方法叫出,供工程部署人员使用,即所谓的工程菜单。组合按键就是一种比较常见的呼叫方法。本文就来实现这种方法。

实现

通过在dispatchKeyEvent方法中拦截键值,以组合键 *0# 为例,当系统接收到这个组合键时,开启另一个app,函数doStartApplicationWithPackageName就是用来做这个的,换成你想实现的方法就成。

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    switch (event.getKeyCode()) {
        case KeyEvent.KEYCODE_STAR:
            keyStarTime = System.currentTimeMillis();
            break;

        case KeyEvent.KEYCODE_0:
            keyZeroTime = System.currentTimeMillis();
            break;

        case KeyEvent.KEYCODE_POUND:
            keyPoundTime = System.currentTimeMillis();
            break;
    }

    checkCombinationKey(keyStarTime, keyZeroTime, keyPoundTime);

    return super.dispatchKeyEvent(event);
}

private void checkCombinationKey(long keystar, long keyZero, long keyPound) {
    //组合键 *0# 打开系统设置app
    long currTime = System.currentTimeMillis();

    if ((keystar <= keyZero) && (keyZero <= keyPound) && (currTime - keystar < 2000) && (currTime - keyZero < 2000) && (currTime - keyPound < 2000)) {
        doStartApplicationWithPackageName(settingPackageName);
    }
}

参考资料

喜欢 (0)

您必须 登录 才能发表评论!

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

请关闭 Adblock 等类似浏览器插件,然后刷新页面访问,感谢您的支持!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.