微光模式

微光模式是 Google TV 和 Android TV 內建的螢幕保護程式,以避免長時間顯示靜態圖片。對於容易導致螢幕烙印情形的 OLED 等顯示技術而言,這一點非常重要。

作業系統會在使用者閒置 10 分鐘後,讓裝置進入微光模式。使用者閒置一段時間後 (由裝置節能模式定義) 之後,OS 就會進入節能模式,關閉螢幕。媒體播放應用程式可能會阻止裝置進入微光模式,即使使用者並未與電影互動 (例如觀看電影) 也一樣。

如果使用者在進入微光模式後的 30 分鐘內與裝置互動,系統就會還原在進入微光模式時啟用的應用程式。如果使用者在進入微光模式後與裝置互動超過 30 分鐘,將返回至主畫面。使用者在裝置處於節能模式時,使用電源按鈕啟動裝置時,將導向主畫面。或者,如果使用者在節能模式 (例如 YouTube) 下啟動裝置,系統會直接導向該應用程式。

如果您使用 MediaSession 播放媒體,則會在開始播放時保留隱含的部分 Wake Lock。暫停播放並不會釋放這個 Wake Lock。 也就是說,裝置可能會自動進入微光模式,但之後不會進入節能模式。如果使用者在進入微光模式後的 30 分鐘內與裝置互動,系統就會還原應用程式。

影片播放

播放影片時,請務必避免裝置在使用者啟動播放期間進入微光模式,這樣才能提供不間斷的觀看體驗。不過,應用程式不得防止裝置在停止或暫停播放時進入微光模式。

音訊播放

如要播放音訊,除非應用程式使用非靜態圖像實作自己的螢幕保護程式,否則不應在播放期間阻止微光模式。微光模式啟用時,音訊會繼續播放。

Android 上的音訊播放會以隱含方式保留部分 Wake Lock。這項操作不會導致裝置無法進入微光模式,但防止之後進入節能模式。因此,即使裝置進入微光模式,影片仍會繼續播放,但裝置不會進入休眠狀態,以免播放中斷。

禁止使用微光模式

您可以防止 OS 將裝置設為微光模式,但必須根據微光模式規定使用。應用程式開發人員無法阻止裝置進入節能模式。

應用程式可以在 Window 上設定標記,防止螢幕關閉:

Kotlin

requireActivity().window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)

Java

requireActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

如果設定此標記,系統就會停用微光模式。如要重新啟用,您必須清除標記:

Kotlin

requireActivity().window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)

Java

requireActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);