Как создать приложение для радио, не будучи затронутым дозой андроида?

Ссылка на эту библиотеку https://github.com/iammert/RadioPlayerService меня есть этот код для воспроизведения / паузы радио

   if (!mRadioManager.isPlaying())
                mRadioManager.startRadio(RADIO_URL[0]);
            else
                mRadioManager.stopRadio();

и способ выполнения процессов

 @Override
public void onRadioStarted() {
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            //TODO Do UI works here.
            mTextViewControl.setText("RADIO STATE : PLAYING...");
        }
    });
}

@Override
public void onRadioStopped() {
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            //TODO Do UI works here
            mTextViewControl.setText("RADIO STATE : STOPPED.");
        }
    });
}

MyBroadcast Class

public class MyBroadcast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    Intent intent1 = new Intent(context, MainActivity.class);
    intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(intent1);
}

Но в андроиде 7 при выключении экрана через 5-8 мин радио перестает воспроизводить музыку. Я сделал еще один пример, делая в фоновом режиме, и это все то же самое. Пожалуйста, кто-нибудь может подсказать мне, как создать радио приложение, не будучи затронутым доза

2 ответа

Решение

Вы должны создать Foreground Service для этого. Обычно, когда выполняется какой-либо длительный процесс (например, загрузка, воспроизведение музыки или видео и т. Д.), Он создает уведомление в строке состояния и на экране блокировки.

Примечание. Службу переднего плана следует использовать только для задач, которые, как ожидает пользователь, будут выполняться системой немедленно или без прерывания. К таким случаям относится загрузка фотографии в социальные сети или воспроизведение музыки, даже если приложение музыкального проигрывателя находится не на переднем плане. Не следует запускать службу переднего плана просто для того, чтобы система не могла определить, что ваше приложение бездействует.

https://developer.android.com/guide/components/services.html

Ссылка ниже является обширным примером. Имейте в виду, что для этого требуется другой уровень разрешений. https://developer.android.com/training/scheduling/wakelock.html

Другие вопросы по тегам