Андроид будильник менеджер звука после перезагрузки
Я работаю над сервис-подобным приложением, использующим 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();