如何在活动UI中屏蔽POWER按钮

时间:2012-07-04 12:04:50

标签: android button android-homebutton

现在,我想实现这样的功能:在一个活动中,屏蔽所有硬件按钮,如HOME,VOLUME_UP,VOLUME_DOWM。但是,只有POWER按钮无法屏蔽。有办法吗?

1 个答案:

答案 0 :(得分:1)

您不能拦截Android中的某些密钥,例如电源和家用电源,例如无法拦截主页密钥,因为这将允许任何恶意应用程序覆盖该功能。

您可以截取主键的唯一方法是,如果您的应用程序是清单中使用android.intent.category.HOME的自定义应用程序替换本身。

你可以抓住其他钥匙,例如音量上/下和后面如下

public boolean dispatchKeyEvent(KeyEvent event) {
int action = event.getAction();
int keyCode = event.getKeyCode();
    switch (keyCode) {
    case KeyEvent.KEYCODE_VOLUME_UP:
        if (action == KeyEvent.ACTION_UP) {
            //handle the key event
        }
        return true;
    case KeyEvent.KEYCODE_VOLUME_DOWN:
        if (action == KeyEvent.ACTION_DOWN) {
            //handle the key event
        }
        return true;
    default:
        return super.dispatchKeyEvent(event);
    }
}

阅读Android Developer blogpost上的以下帖子

Android Developer: Back and other hard keys-three stories