-1

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

4

1 回答 1

1

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

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 开发者博文中的以下文章

Android开发者:返回等硬键——三个故事

于 2012-07-04T12:10:35.770 回答