在Android中捕捉电源按键?

时间:2013-06-24 08:49:41

标签: android

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

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

但是在按下Power Key控件时使用此代码没有进入onKeyDown方法。

  

长按电源键,此方法被调用。但是我需要单身   按我需要捕捉此事件

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

有很多线程,你必须添加权限。

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

How to hook into the Power button in Android?

答案 1 :(得分:0)

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

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

还有进一步的讨论here

所以你的代码是:

    @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。