1

我需要在 android 中捕获电源按键。我尝试了以下

      @Override
   public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(KeyEvent.KEYCODE_POWER == event.getKeyCode()){
              //some operations
          }
    return super.onKeyDown(keyCode, event);
    }

但是在按下电源键控件时使用此代码不会进入 onKeyDown 方法。

在长按电源键时,会调用此方法。但是我需要单按一下我需要捕获此事件

任何人都可以帮忙吗?

4

2 回答 2

2

很多关于这个的线程,你必须添加权限。

<uses-permission android:name="android.permission.PREVENT_POWER_KEY" />

如何连接到 Android 中的电源按钮?

于 2013-06-24T08:53:10.073 回答
1

您可能缺少清单中允许您的应用程序覆盖电源键的默认行为的权限,如果您已处理事件以防止默认行为,则返回某些内容也很重要。

<uses-permission android:name="android.permission.PREVENT_POWER_KEY" />

这里有进一步的讨论

所以你的代码是:

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(KeyEvent.KEYCODE_POWER == event.getKeyCode()){
              return true;//If event is handled, falseif 
        }
        return super.onKeyDown(keyCode, event);
    }

如果您处理了该事件,则返回 true。如果您想允许下一个接收者处理事件,请返回 false。

于 2013-06-24T08:51:09.077 回答