覆盖Android设备中的锁定/电源按钮

时间:2014-02-07 05:21:10

标签: android callback android-button keyevent

我想知道它是否可以覆盖android中的电源按钮?

我在Stack Overflow中阅读了很多帖子,有些人说这是可能的,有些人说它不是(example)。

我想要实现的是 - 当用户使用我的应用时,他需要按下锁定/电源按钮5次以锁定屏幕。我不想仅仅使用锁定功能来覆盖swtich off功能。

无论如何都要获取电源按钮回调?

我尝试了WakeLock并禁用了键盘锁,但它并没有为我的目的服务。

我在以下评论部分发布的Shink链接中尝试了以下代码:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (event.getKeyCode() == KeyEvent.KEYCODE_POWER) {
        // do what you want with the power button
        Toast.makeText(getApplicationContext(), "down", Toast.LENGTH_LONG).show();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub
    if (event.getKeyCode() == KeyEvent.KEYCODE_POWER) {
        // do what you want with the power button
        Toast.makeText(getApplicationContext(), "up", Toast.LENGTH_LONG).show();
        return true;
    }
   return super.onKeyUp(keyCode, event);
}

仅在按住电源按钮2秒钟时才会显示toast msg。那是为什么?

是否可以覆盖锁定屏幕的电源按钮功能?或者还有其他方法可以实现我想要做的事情吗?

1 个答案:

答案 0 :(得分:0)

出于安全目的,您无法禁用POWER_BUTTON。它以广播/用户模式运行...... :(