【问题标题】:Overriding lock/power button in android devices覆盖Android设备中的锁定/电源按钮
【发布时间】:2014-03-04 09:42:33
【问题描述】:

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

我在 Stack Overflow 上阅读了很多帖子,有人说可以,有人说不行 (example)。

我想要实现的是 - 当用户使用我的应用程序时,他需要按 5 次锁定/电源按钮来锁定屏幕。我不想只覆盖锁定功能的开关功能。

是否有办法获取电源按钮回调?

我尝试了 WakeLock 并禁用了键盘保护,但它不符合我的目的。

我尝试了下面 cmets 部分中发布的 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 秒钟时才会显示吐司消息。这是为什么呢?

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

【问题讨论】:

  • 即使我正在寻找解决同一问题的方法,但找不到任何相关的东西。最终我不得不改变我的申请过程。虽然您可以捕获屏幕打开和屏幕关闭的事件。 stackoverflow.com/questions/19263661/…
  • 感谢分享我去试试
  • @Shink 这肯定是我发现的新东西。感谢那。但在我的情况下它对我没有帮助

标签: android callback android-button keyevent


【解决方案1】:

出于安全目的,您不能禁用 POWER_BUTTON。它以广播/订阅模式运行... :(

【讨论】:

    猜你喜欢
    • 2012-04-10
    • 2015-08-15
    • 2020-10-10
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    • 2013-09-30
    • 1970-01-01
    • 2013-11-08
    相关资源
    最近更新 更多