在我的应用程序中,我需要在活动中捕获Power Button Press,然后显示另一个活动。我已经设法抓住电源按钮并在按下时显示新活动。 我使用BroadcastReceiver来挂钩电源新闻事件。我在我的Activity中添加了以下标志,以防止在按下电源按钮时屏幕被锁定:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);//prevent phone from being locked
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); //I am not sure it works.
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);//turns the screen on
虽然我可以抓住电源按下并显示活动而不会被锁定,但屏幕会关闭约1秒钟并再次自动打开,这不是我真正想要的。 无论如何,当用户按下电源按钮时,我可以保持屏幕开启吗?
我无法通过dispatchkeyevent捕捉到力量,但我能抓住它:
screenoff = new BroadcastReceiver()
public static final String Screenoff = "android.intent.action.SCREEN_OFF";
@Override
public void onReceive(Context context, Intent intent) {
if (!intent.getAction().equals(Screenoff)) {
//code goes here return;
return;
}
};
IntentFilter offfilter = new IntentFilter (Intent.ACTION_SCREEN_OFF);
registerReceiver(screenoff, offfilter);
问题是屏幕关闭大约1秒钟。
为什么会发生这种情况以及如何解决这个问题?
谢谢, 侯赛因
答案 0 :(得分:0)
你应该使用
boolean dispatchKeyEvent(KeyEvent event)
Called to process key events.
在Activity类中捕获关键事件。
不确定它是否捕获了电源按钮。