屏幕关闭时释放 WAKELOCK
Release WAKELOCK when screen is off
我正在制作一个 Android TV 和 Amazon Fire TV 应用程序,它使用 WAKELOCK 来防止电视设备进入睡眠状态。我需要做的是在屏幕关闭时释放 WAKELOCK,例如当有人按下电视上的电源按钮时,尽管电视已关闭,亚马逊 Fire TV Stick 等仍保持活动状态。
然后我需要在电视开机时重新添加WAKELOCK。公认的处理此问题的最佳做法是什么?
编辑:根据评论,我正在使用最有效的方法更新此回复。
简而言之,您可以通过两种方式实现此目的:
- 检查HDMI是否断开(主要适用于手机,请继续阅读电视)
- 检查音频通道是否变得嘈杂。根据 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 class 注册为该意图的广播接收器。然后你应该实现这个 class:
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)
}
}
}
我正在制作一个 Android TV 和 Amazon Fire TV 应用程序,它使用 WAKELOCK 来防止电视设备进入睡眠状态。我需要做的是在屏幕关闭时释放 WAKELOCK,例如当有人按下电视上的电源按钮时,尽管电视已关闭,亚马逊 Fire TV Stick 等仍保持活动状态。
然后我需要在电视开机时重新添加WAKELOCK。公认的处理此问题的最佳做法是什么?
编辑:根据评论,我正在使用最有效的方法更新此回复。
简而言之,您可以通过两种方式实现此目的:
- 检查HDMI是否断开(主要适用于手机,请继续阅读电视)
- 检查音频通道是否变得嘈杂。根据 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 class 注册为该意图的广播接收器。然后你应该实现这个 class:
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)
}
}
}