diff --git a/media/java/android/media/session/MediaController.java b/media/java/android/media/session/MediaController.java index 8e3d6d6b3bf73..a5cb85fa13885 100644 --- a/media/java/android/media/session/MediaController.java +++ b/media/java/android/media/session/MediaController.java @@ -48,8 +48,9 @@ import java.util.List; * receive updates from the session, such as metadata and play state changes. *

* A MediaController can be created through {@link MediaSessionManager} if you - * hold the "android.permission.MEDIA_CONTENT_CONTROL" permission or directly if - * you have a {@link MediaSession.Token} from the session owner. + * hold the "android.permission.MEDIA_CONTENT_CONTROL" permission or are an + * enabled notification listener or by getting a {@link MediaSession.Token} + * directly from the session owner. *

* MediaController objects are thread-safe. */ diff --git a/services/core/java/com/android/server/media/MediaSessionRecord.java b/services/core/java/com/android/server/media/MediaSessionRecord.java index bd00db0229878..2e6fcb096c017 100644 --- a/services/core/java/com/android/server/media/MediaSessionRecord.java +++ b/services/core/java/com/android/server/media/MediaSessionRecord.java @@ -235,7 +235,7 @@ public class MediaSessionRecord implements IBinder.DeathRecipient { * @param direction The direction to adjust volume in. */ public void adjustVolume(int direction, int flags, String packageName, int uid) { - if (isPlaybackActive(false)) { + if (isPlaybackActive(false) || hasFlag(MediaSession.FLAG_EXCLUSIVE_GLOBAL_PRIORITY)) { flags &= ~AudioManager.FLAG_PLAY_SOUND; } if (direction > 1) {