簡體   English   中英

屏幕會使用PowerManager自動喚醒。ON_AFTER_RELEASEakeLock

[英]Screen automatically wakes up with PowerManager.ON_AFTER_RELEASE wakeLock

在以下示例活動中,僅在我使用PowerManager.ON_AFTER_RELEASE標志時,用戶關閉屏幕(帶有電源按鈕)后,屏幕會立即自動喚醒。 如果我不使用此標志,則不會發生。

public class TestActivity extends Activity {

    private WakeLock wakeLock;

    @Override
    protected void onResume() {
        super.onResume();

        wakeLock = ((PowerManager) getSystemService(Context.POWER_SERVICE)).newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE, "test");
        wakeLock.acquire();
    }

    @Override
    protected void onPause() {
        wakeLock.release();
        super.onPause();
    }

}

有沒有辦法在仍然使用PowerManager.ON_AFTER_RELEASE標志時避免這種現象?

使用MediaPlayer的setWakeMode()方法時,我遇到了同樣的問題(我在源代碼中進行了檢查,它也使用了此PowerManager.ON_AFTER_RELEASE標志)

或者,也許我只是誤解了該標志的用途……它的用途是什么?

WindowManager.LayoutParams類具有標志FLAG_TURN_SCREEN_ON 記錄如下:

窗口標志:添加或設置為可見窗口后,一旦顯示了該窗口,系統便會撥開電源管理器的用戶活動(就像用戶已經喚醒設備一樣)以打開屏幕。

嘗試在onResume清除此標志:

getWindow().clearFlags( WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON );

並查看是否在按下電源按鈕后使屏幕保持黑屏。 您也可以在onPause嘗試使用該標志。 只是一個猜測。

好的,經過多次實驗,使用PowerManager.ON_AFTER_RELEASE似乎無法避免這種自動屏幕喚醒。

因此,如果沒有這個問題,就無法使用MediaPlayer.setWakeMode()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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