Как правило, ваш код не работает, если divice переходит в спящий режим. Чтобы ваш код работал, вам нужно приобрести WakeLock у PowerManager . Но в вашем случае вам не нужно постоянно приобретать WakeLock. Вам нужно будить ваше приложение каждые 10 минут. В противном случае ваше приложение будет просто кушать батарею, ничего не делая.
Для периодического пробуждения приложения необходимо использовать специальный Android AlarmManager .
.
Вот пример:
Intent myIntent = new Intent(getApplicationContext(), YourActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 1, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, interval, pendingIntent);
Вы также можете отправлять трансляции, которые вы будете обрабатывать в своей Службе (если вы не хотите использовать Активность).
РЕДАКТИРОВАТЬ : Воспроизведение не начнется, если вы явно не создадите SCREEN_DIM_WAKE_LOCK. Обратите внимание, что PARTIAL_WAKE_LOCK не будет работать с воспроизведением (не знаю почему, возможно, это ошибка).
PowerManager powerManager = (PowerManager)getSystemService(POWER_SERVICE);
WakeLock wakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "Music");
wakeLock.acquire();
...start playback...
wakeLock.release();
EDIT : добавлен проект, который показывает пример запуска воспроизведения каждые 60 секунд (даже когда экран выключен и USB-кабель отключен). Его можно найти здесь: http://code.google.com/p/playevery60/