簡體   English   中英

屏幕關閉時釋放WAKELOCK

[英]Release WAKELOCK when screen is off

我正在制作一個使用WAKELOCK防止電視設備進入睡眠狀態的Android TV和Amazon Fire TV應用程序。 我要做的是在屏幕關閉時(例如,當有人按下電視上的電源按鈕時)松開WAKELOCK,因為在這種情況下,即使電視已關閉,Amazon Fire TV Stick等仍保持活動狀態。

然后,我需要在電視開機時重新添加WAKELOCK。 處理此問題的公認最佳實踐是什么?

編輯:根據評論,我正在用最有效的方法更新此響應。

簡而言之,您可以通過兩種方式實現這一目標:

  1. 檢查HDMI是否斷開連接(主要在手機上使用,請繼續看電視)
  2. 檢查音頻通道是否嘈雜。 根據Android文檔( https://developer.android.com/guide/topics/media/mediaplayer.html#noisyintent ),您可以執行以下操作(更改為):

“您可以通過處理ACTION_AUDIO_BECOMING_NOISY意圖來確保您的應用在這些情況下停止播放音樂,為此您可以通過在清單中添加以下內容來注冊接收者:

    <receiver android:name=".MusicIntentReceiver">
   <intent-filter>
      <action android:name="android.media.AUDIO_BECOMING_NOISY" />
   </intent-filter>
</receiver>

這會將MusicIntentReceiver類注冊為該意圖的廣播接收器。 然后,您應該實現此類:

public class MusicIntentReceiver extends android.content.BroadcastReceiver {
       @Override
       public void onReceive(Context ctx, Intent intent) {
          if (intent.getAction().equals(
                        android.media.AudioManager.ACTION_AUDIO_BECOMING_NOISY)) {
              // signal your service to stop playback
              // (via an Intent, for instance)
          }
       }
    }

暫無
暫無

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

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