屏幕关闭时释放WAKELOCK

时间:2016-05-30 17:27:28

标签: android android-tv android-wake-lock amazon-fire-tv

我正在制作一部使用WAKELOCK的Android TV和亚马逊Fire TV应用,以防止电视设备进入睡眠状态。我需要做的是在屏幕关闭时释放WAKELOCK,例如当有人按下电视上的电源按钮时,虽然电视已关机,但亚马逊消防电视棒等保持活动状态。

然后我需要在电视开机时重新添加WAKELOCK。处理此问题的最佳做法是什么?

1 个答案:

答案 0 :(得分:2)

编辑:根据评论我用最有效的方法更新此回复。

简而言之,您可以通过两种方式实现这一目标:

  1. 检查HDMI是否断开连接(主要适用于手机,继续阅读电视)
  2. 检查音频通道是否有噪音。根据Android文档(https://developer.android.com/guide/topics/media/mediaplayer.html#noisyintent),您可以执行以下操作(更改为):
  3. “您可以通过处理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)
              }
           }
        }