diff --git a/media/java/android/media/Ringtone.java b/media/java/android/media/Ringtone.java index 0ce35269bf392..f2c1694b62f95 100644 --- a/media/java/android/media/Ringtone.java +++ b/media/java/android/media/Ringtone.java @@ -203,7 +203,22 @@ public class Ringtone { mUri = uri; openMediaPlayer(); } - + + /** @hide */ + public void setWakeMode(Context context, int mode) { + if (mAudio == null) { + try { + openMediaPlayer(); + } catch (Exception ex) { + Log.e(TAG, "setWakeMode() caught ", ex); + mAudio = null; + } + } + if (mAudio != null) { + mAudio.setWakeMode(context, mode); + } + } + /** * Plays the ringtone. */ diff --git a/policy/src/com/android/internal/policy/impl/KeyguardViewMediator.java b/policy/src/com/android/internal/policy/impl/KeyguardViewMediator.java index 5d3dee9d1b0c7..0f1d6337fde60 100644 --- a/policy/src/com/android/internal/policy/impl/KeyguardViewMediator.java +++ b/policy/src/com/android/internal/policy/impl/KeyguardViewMediator.java @@ -1054,6 +1054,7 @@ public class KeyguardViewMediator implements KeyguardViewCallback, final Ringtone sfx = RingtoneManager.getRingtone(mContext, soundUri); if (sfx != null) { sfx.setStreamType(AudioManager.STREAM_SYSTEM); + sfx.setWakeMode(mContext, PowerManager.PARTIAL_WAKE_LOCK); sfx.play(); } else { if (DEBUG) Log.d(TAG, "playSounds: failed to load ringtone from uri: "