Отпустите WAKELOCK, когда экран выключен
Я создаю приложение для Android TV и Amazon Fire TV, которое использует WAKELOCK для предотвращения перехода устройства в спящий режим. Что мне нужно сделать, так это разблокировать WAKELOCK, когда экран выключен, например, когда кто-то нажимает кнопку питания на телевизоре, так как в этом случае Amazon Fire TV Stick и т. Д. Остаются активными, хотя телевизор выключен.
Затем мне нужно снова добавить WAKELOCK, когда телевизор включен. Какова принятая лучшая практика для обработки этого?
1 ответ
РЕДАКТИРОВАТЬ: согласно комментарию я обновляю этот ответ с наиболее эффективным методом.
В двух словах, вы можете достичь этого двумя способами:
- Проверьте, не отключен ли HDMI (в основном работает на телефонах, продолжайте читать для ТВ)
- Проверьте, не становится ли аудиоканал шумным. Согласно документации Android ( https://developer.android.com/guide/topics/media/mediaplayer.html) вы можете сделать что-то вроде следующего (изменить с помощью):
"Вы можете убедиться, что ваше приложение перестает воспроизводить музыку в этих ситуациях, обрабатывая намерение 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)
}
}
}