簡體   English   中英

Android:哪些事件會喚醒設備

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM