[英]How to wake up Device using PowerManager.wakeUp in Android API 8
[英]Android: Which events do wakeup a device
我已經編寫了一個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();
}
您還需要在清單文件中添加喚醒鎖權限:
<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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.