如何实现广播接收器的onkeydown方法?

How to implement onkeydown method to broadcast receiver?

我想在屏幕关闭时跟踪音量键。如何将我的代码放入接收方法中?

我想在用户按下音量降低键和屏幕关闭时打开手电筒。

MyReceiver.java :

 public class MyReceiver extends BroadcastReceiver {

 private boolean screenOff;

  @Override
   public void onReceive(Context context, Intent intent) {
     if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {

        screenOff = true;
        // Log.i("via Receiver","Normal ScreenOFF" );
     } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
        screenOff = false;
     } else if(intent.getAction().equals(Intent.ACTION_ANSWER)) {

    }

    Intent i = new Intent(context, UpdateService.class);
    i.putExtra("screen_state", screenOff);
    context.startService(i);
 }

}

您不需要在 onReceive() 中设置事件侦听器。像这样尝试

setOnKeyListener(new View.OnKeyListener() {
  @Override public boolean onKey(View v, int keyCode, KeyEvent event) {
    switch (keyCode) {
      case KeyEvent.KEYCODE_VOLUME_DOWN:
        if (screenOff) {
          // turn on torch
          return true;
        }
    }
    return false;
  }