我正在尝试捕获电源点击我的Android应用程序,我正在寻找任何解决方案,我只是找到一个有良好的结果,这是当我检测到screenOn / screenOff像这样:
public class Receiver extends BroadcastReceiver {
private boolean screenOff;
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
screenOff = true;
} else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
screenOff = false;
}
Intent i = new Intent(context, PowerButtonService.class);
i.putExtra("screen_state", screenOff);
context.startService(i);
}
}
这个方法的问题是,在我的应用程序中,我正在寻找屏幕关闭,然后它不适合我。
我也在我的MainActivity中尝试了这个代码,但这并不起作用,对它进行调试,当我向上或向下推动时执行进入内部而不是在我按下电源键时执行:
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_POWER) {
Log.i("Main", "Dispath event power");
Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
sendBroadcast(closeDialog);
Log.d("DISPATCH", "boton pulsado");
return true;
}
return super.dispatchKeyEvent(event);
}
我在这个问题上遇到同样的问题:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_POWER) {
Log.w("Test", "Power button down detected");
return true;
}
return false;
}
有人可以帮助我吗?感谢
编辑:我想抓住短按键
抱歉我的英文