1
我已經寫了一個android應用程序,現在有一個問題。Android:哪些事件喚醒設備
如果我的應用程序正在運行,並且關閉了我的設備,那麼有時它會在大約8秒鐘後喚醒,然後屏幕打開並再次顯示我的應用程序。
我的問題是: 哪些事件或處理約束(如處理廣播意圖)喚醒設備?
編輯:帶有RCT_WAKEUP的鬧鐘是否會打開設備屏幕?
在此先感謝!
我已經寫了一個android應用程序,現在有一個問題。Android:哪些事件喚醒設備
如果我的應用程序正在運行,並且關閉了我的設備,那麼有時它會在大約8秒鐘後喚醒,然後屏幕打開並再次顯示我的應用程序。
我的問題是: 哪些事件或處理約束(如處理廣播意圖)喚醒設備?
編輯:帶有RCT_WAKEUP的鬧鐘是否會打開設備屏幕?
在此先感謝!
AlarmManager不會真正爲您打開屏幕。你可以使用喚醒鎖來代替。
PowerManager.WakeLock wakelock;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
.........
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakelock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK
| PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "AlarmReceiver");
wakelock.acquire();
}
當你與活動做只是一定要釋放喚醒鎖定:
@Override
protected void onStop() {
super.onStop();
wakelock.release();
}
您還需要添加之後鎖定權限在manifest文件:
<uses-permission android:name="android.permission.WAKE_LOCK"/>
或者,如果您不想包含此額外權限,則可以在您的活動中使用以下代碼而不是使用喚醒鎖:
this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN |
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
嗨,謝謝你的回答。 但我的問題不是如何喚醒設備和如何保持屏幕,但哪些事件會喚醒我的設備。我不想喚醒我的設備,它不是一部手機,也不是一部平板電腦,而是一部自定義設備,它必須處於睡眠模式一段時間,而不會自動開機。 – robotniko