Я разработал приложение, которое транслирует музыку (через интернет) с использованием сервиса и поддерживает потоковую передачу контента без использования телефона.
Когда я разрабатывал свое приложение каждый раз, когда я пробовал описанный ниже случай, музыка воспроизводилась нормально.
Вариант использования: поиск песни, выбор песни из результатов, воспроизведение песни, отключение экрана -> автоматическое воспроизведение следующей песни из списка результатов
Я занимаюсь разработкой с использованием реального устройства - Huawei Mate 20 Lite - OS v8.01, поэтому при отладке необходимо использовать USB-кабель.
Как я уже сказал, в случае использования выше при подключенном USB автоматическое воспроизведение при отключенном экране работает хорошо. Если он не работает должным образом, это когда кабель не подключен (включены только мобильные данные).
Что я понял, так это то, что телефон при подключении по USB, вероятно, держит устройство в активном состоянии и не переходит в режим ожидания, в то время как когда устройство не подключается примерно через 5 минут, оно, вероятно, завершает процессы, которые требуют энергии, или выключается. Нет связи, я не уверен, и вот где вы, ребята, нуждаетесь.
Кроме того, я протестировал приложение с использованием HTC U Play - OS v6.0, и потоковая передача идет без прерываний, когда экран выключен и телефон не трогали в течение 10 + минут.
Также я пытался приобрести wakelock внутри создаваемого и не освобождая его, просто чтобы посмотреть, помогает ли он, а это нет.
pm = (PowerManager) getApplicationContext (). GetSystemService (Context.POWER_SERVICE);
wl = pm.newWakeLock (PowerManager.PARTIAL_WAKE_LOCK, "MyWakeLock");
wl.acquire ();