Андроид будильник менеджер звука после перезагрузки

Я работаю над сервис-подобным приложением, использующим AndroidManagerManager. Приложение в основном подключается к серверу и вызывает удаленную процедуру. Если возвращаемое значение True, оно воспроизводит звук:

MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_RING); 
try {
    mediaPlayer.setDataSource(getApplicationContext(), 
     Uri.parse("file:///system/media/audio/ringtones/Rolling_tone.ogg"));
}
...
mediaPlayer.start();

Это работает все хорошо, когда приложение запускается вручную. Однако, когда телефон перезагружается (я реализовал BroadcastReceiver), звук воспроизводится в течение секунды, а затем немедленно прерывается.

Это звучит почти так, как будто цикл игры прерывается чем-то. Мне нужно остановить и перезапустить приложение, чтобы оно снова заработало правильно.

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

1 ответ

Вы могли бы использовать MediaPlayer"s setScreenOnWhilePlaying() чтобы приложение не переходило в спящий режим во время воспроизведения звука в фоновом режиме.

http://developer.android.com/reference/android/media/MediaPlayer.html

Другим возможным решением является использование PowerManager чтобы ваше устройство не спало с WakeLock:

См. http://developer.android.com/reference/android/os/PowerManager.html

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
wl.acquire();
   ... wait until sound has finished playing (with listener)
wl.release();
Другие вопросы по тегам