1
在我的應用程序中,我需要捕獲電源按鈕按一個活動,然後顯示另一個活動。我已經設法抓住電源按鈕並在按下時顯示新的活動。 我使用BroadcastReceiver來掛斷電源按下事件。我添加下列標誌到我的活動,以防止屏幕當按下電源按鈕被鎖定:電源按鈕按下 - 保持屏幕
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秒鐘。 爲什麼會發生這種情況,我該如何解決這個問題?
感謝, 侯賽因
我coud已經通過廣播接收器趕上事件,但屏幕關閉1秒左右,我想要阻止。即使用戶按下電源,是否有任何方法可以保持屏幕亮起?我也嘗試了'getWindow()。addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);'但我也沒有幫助我。 – Hossein