diff options
| -rw-r--r-- | media/java/android/media/AudioManager.java | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java index 05be088fb2ac..dff31d467320 100644 --- a/media/java/android/media/AudioManager.java +++ b/media/java/android/media/AudioManager.java @@ -16,12 +16,12 @@ package android.media; -import android.Manifest; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.SdkConstant; import android.annotation.SdkConstant.SdkConstantType; +import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.annotation.SystemService; import android.app.NotificationManager; @@ -2364,8 +2364,8 @@ public class AudioManager { * usecases such as voice memo recording, or speech recognition. * Use {@link #AUDIOFOCUS_GAIN} for a focus request of unknown duration such * as the playback of a song or a video. - * @param flags 0 or a combination of {link #AUDIOFOCUS_FLAG_DELAY_OK} - * and {@link #AUDIOFOCUS_FLAG_PAUSES_ON_DUCKABLE_LOSS}. + * @param flags 0 or a combination of {link #AUDIOFOCUS_FLAG_DELAY_OK}, + * {@link #AUDIOFOCUS_FLAG_PAUSES_ON_DUCKABLE_LOSS} and {@link #AUDIOFOCUS_FLAG_LOCK}. * <br>Use 0 when not using any flags for the request, which behaves like * {@link #requestAudioFocus(OnAudioFocusChangeListener, int, int)}, where either audio * focus is granted immediately, or the grant request fails because the system is in a @@ -2377,6 +2377,7 @@ public class AudioManager { * @throws IllegalArgumentException */ @SystemApi + @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int requestAudioFocus(OnAudioFocusChangeListener l, @NonNull AudioAttributes requestAttributes, int durationHint, @@ -2416,6 +2417,10 @@ public class AudioManager { * @deprecated use {@link #requestAudioFocus(AudioFocusRequest, AudioPolicy)} */ @SystemApi + @RequiresPermission(anyOf= { + android.Manifest.permission.MODIFY_PHONE_STATE, + android.Manifest.permission.MODIFY_AUDIO_ROUTING + }) public int requestAudioFocus(OnAudioFocusChangeListener l, @NonNull AudioAttributes requestAttributes, int durationHint, @@ -2474,6 +2479,7 @@ public class AudioManager { * @throws IllegalArgumentException when trying to lock focus without an AudioPolicy */ @SystemApi + @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int requestAudioFocus(@NonNull AudioFocusRequest afr, @Nullable AudioPolicy ap) { if (afr == null) { throw new NullPointerException("Illegal null AudioFocusRequest"); @@ -2571,6 +2577,7 @@ public class AudioManager { * @throws NullPointerException if the {@link AudioFocusInfo} or {@link AudioPolicy} are null. */ @SystemApi + @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int dispatchAudioFocusChange(@NonNull AudioFocusInfo afi, int focusChange, @NonNull AudioPolicy ap) { if (afi == null) { @@ -2622,6 +2629,8 @@ public class AudioManager { * @deprecated use {@link #abandonAudioFocusRequest(AudioFocusRequest)} */ @SystemApi + @SuppressLint("Doclava125") // no permission enforcement, but only "undoes" what would have been + // done by a matching requestAudioFocus public int abandonAudioFocus(OnAudioFocusChangeListener l, AudioAttributes aa) { int status = AUDIOFOCUS_REQUEST_FAILED; unregisterAudioFocusRequest(l); @@ -3833,6 +3842,7 @@ public class AudioManager { * @hide */ @SystemApi + @SuppressLint("Doclava125") // FIXME is this still used? public boolean isHdmiSystemAudioSupported() { try { return getService().isHdmiSystemAudioSupported(); |