1

Android で電源キーの押下をキャプチャする必要があります。私は次のことを試しました

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

ただし、電源キー コントロールを押したときにこのコードを使用すると、onKeyDown メソッドに入りません。

電源キーを長押しすると、このメソッドが呼び出されます。しかし、1 回押すと、このイベントをキャプチャする必要があります。

誰でも助けることができますか?

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 に答える