Loading core/api/system-current.txt +3 −2 Original line number Diff line number Diff line Loading @@ -209,6 +209,7 @@ package android { field public static final String MIGRATE_HEALTH_CONNECT_DATA = "android.permission.MIGRATE_HEALTH_CONNECT_DATA"; field public static final String MODIFY_APPWIDGET_BIND_PERMISSIONS = "android.permission.MODIFY_APPWIDGET_BIND_PERMISSIONS"; field public static final String MODIFY_AUDIO_ROUTING = "android.permission.MODIFY_AUDIO_ROUTING"; field public static final String MODIFY_AUDIO_SYSTEM_SETTINGS = "android.permission.MODIFY_AUDIO_SYSTEM_SETTINGS"; field public static final String MODIFY_CELL_BROADCASTS = "android.permission.MODIFY_CELL_BROADCASTS"; field public static final String MODIFY_DAY_NIGHT_MODE = "android.permission.MODIFY_DAY_NIGHT_MODE"; field @Deprecated public static final String MODIFY_NETWORK_ACCOUNTING = "android.permission.MODIFY_NETWORK_ACCOUNTING"; Loading Loading @@ -6609,8 +6610,8 @@ package android.media { } public class AudioDeviceVolumeManager { method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public android.media.VolumeInfo getDeviceVolume(@NonNull android.media.VolumeInfo, @NonNull android.media.AudioDeviceAttributes); method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void setDeviceVolume(@NonNull android.media.VolumeInfo, @NonNull android.media.AudioDeviceAttributes); method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.MODIFY_AUDIO_ROUTING, android.Manifest.permission.MODIFY_AUDIO_SYSTEM_SETTINGS}) public android.media.VolumeInfo getDeviceVolume(@NonNull android.media.VolumeInfo, @NonNull android.media.AudioDeviceAttributes); method @RequiresPermission(anyOf={android.Manifest.permission.MODIFY_AUDIO_ROUTING, android.Manifest.permission.MODIFY_AUDIO_SYSTEM_SETTINGS}) public void setDeviceVolume(@NonNull android.media.VolumeInfo, @NonNull android.media.AudioDeviceAttributes); } public final class AudioFocusInfo implements android.os.Parcelable { core/res/AndroidManifest.xml +8 −0 Original line number Diff line number Diff line Loading @@ -5335,6 +5335,14 @@ <permission android:name="android.permission.MODIFY_AUDIO_ROUTING" android:protectionLevel="signature|privileged|role" /> <!--@SystemApi Allows an application to modify system audio settings that shouldn't be controllable by external apps, such as volume settings or volume behaviors for audio devices, regardless of their connection status. <p>Not for use by third-party applications. @hide --> <permission android:name="android.permission.MODIFY_AUDIO_SYSTEM_SETTINGS" android:protectionLevel="signature|privileged" /> <!-- @SystemApi Allows an application to access the uplink and downlink audio of an ongoing call. <p>Not for use by third-party applications.</p> Loading data/etc/privapp-permissions-platform.xml +1 −0 Original line number Diff line number Diff line Loading @@ -465,6 +465,7 @@ applications that come with the platform <!-- Permission required for CTS test - SystemMediaRouter2Test --> <permission name="android.permission.MEDIA_CONTENT_CONTROL"/> <permission name="android.permission.MODIFY_AUDIO_ROUTING"/> <permission name="android.permission.MODIFY_AUDIO_SYSTEM_SETTINGS"/> <!-- Permission required for CTS test - CallAudioInterceptionTest --> <permission name="android.permission.CALL_AUDIO_INTERCEPTION"/> <!-- Permission required for CTS test - CtsPermission5TestCases --> Loading media/java/android/media/AudioDeviceVolumeManager.java +9 −4 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.media; import android.Manifest; import android.annotation.CallbackExecutor; import android.annotation.IntDef; import android.annotation.NonNull; Loading Loading @@ -318,8 +319,10 @@ public class AudioDeviceVolumeManager { * @param ada the device for which volume is to be modified */ @SystemApi // TODO alternatively require MODIFY_AUDIO_SYSTEM_SETTINGS when defined @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) @RequiresPermission(anyOf = { Manifest.permission.MODIFY_AUDIO_ROUTING, Manifest.permission.MODIFY_AUDIO_SYSTEM_SETTINGS }) public void setDeviceVolume(@NonNull VolumeInfo vi, @NonNull AudioDeviceAttributes ada) { try { getService().setDeviceVolume(vi, ada, mPackageName); Loading @@ -340,8 +343,10 @@ public class AudioDeviceVolumeManager { * @param ada the device for which volume is to be retrieved */ @SystemApi // TODO alternatively require MODIFY_AUDIO_SYSTEM_SETTINGS when defined @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) @RequiresPermission(anyOf = { Manifest.permission.MODIFY_AUDIO_ROUTING, Manifest.permission.MODIFY_AUDIO_SYSTEM_SETTINGS }) public @NonNull VolumeInfo getDeviceVolume(@NonNull VolumeInfo vi, @NonNull AudioDeviceAttributes ada) { try { Loading media/java/android/media/IAudioService.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -106,9 +106,11 @@ interface IAudioService { void setStreamVolumeWithAttribution(int streamType, int index, int flags, in String callingPackage, in String attributionTag); @EnforcePermission(anyOf = {"MODIFY_AUDIO_ROUTING", "MODIFY_AUDIO_SYSTEM_SETTINGS"}) void setDeviceVolume(in VolumeInfo vi, in AudioDeviceAttributes ada, in String callingPackage); @EnforcePermission(anyOf = {"MODIFY_AUDIO_ROUTING", "MODIFY_AUDIO_SYSTEM_SETTINGS"}) VolumeInfo getDeviceVolume(in VolumeInfo vi, in AudioDeviceAttributes ada, in String callingPackage); Loading Loading
core/api/system-current.txt +3 −2 Original line number Diff line number Diff line Loading @@ -209,6 +209,7 @@ package android { field public static final String MIGRATE_HEALTH_CONNECT_DATA = "android.permission.MIGRATE_HEALTH_CONNECT_DATA"; field public static final String MODIFY_APPWIDGET_BIND_PERMISSIONS = "android.permission.MODIFY_APPWIDGET_BIND_PERMISSIONS"; field public static final String MODIFY_AUDIO_ROUTING = "android.permission.MODIFY_AUDIO_ROUTING"; field public static final String MODIFY_AUDIO_SYSTEM_SETTINGS = "android.permission.MODIFY_AUDIO_SYSTEM_SETTINGS"; field public static final String MODIFY_CELL_BROADCASTS = "android.permission.MODIFY_CELL_BROADCASTS"; field public static final String MODIFY_DAY_NIGHT_MODE = "android.permission.MODIFY_DAY_NIGHT_MODE"; field @Deprecated public static final String MODIFY_NETWORK_ACCOUNTING = "android.permission.MODIFY_NETWORK_ACCOUNTING"; Loading Loading @@ -6609,8 +6610,8 @@ package android.media { } public class AudioDeviceVolumeManager { method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public android.media.VolumeInfo getDeviceVolume(@NonNull android.media.VolumeInfo, @NonNull android.media.AudioDeviceAttributes); method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void setDeviceVolume(@NonNull android.media.VolumeInfo, @NonNull android.media.AudioDeviceAttributes); method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.MODIFY_AUDIO_ROUTING, android.Manifest.permission.MODIFY_AUDIO_SYSTEM_SETTINGS}) public android.media.VolumeInfo getDeviceVolume(@NonNull android.media.VolumeInfo, @NonNull android.media.AudioDeviceAttributes); method @RequiresPermission(anyOf={android.Manifest.permission.MODIFY_AUDIO_ROUTING, android.Manifest.permission.MODIFY_AUDIO_SYSTEM_SETTINGS}) public void setDeviceVolume(@NonNull android.media.VolumeInfo, @NonNull android.media.AudioDeviceAttributes); } public final class AudioFocusInfo implements android.os.Parcelable {
core/res/AndroidManifest.xml +8 −0 Original line number Diff line number Diff line Loading @@ -5335,6 +5335,14 @@ <permission android:name="android.permission.MODIFY_AUDIO_ROUTING" android:protectionLevel="signature|privileged|role" /> <!--@SystemApi Allows an application to modify system audio settings that shouldn't be controllable by external apps, such as volume settings or volume behaviors for audio devices, regardless of their connection status. <p>Not for use by third-party applications. @hide --> <permission android:name="android.permission.MODIFY_AUDIO_SYSTEM_SETTINGS" android:protectionLevel="signature|privileged" /> <!-- @SystemApi Allows an application to access the uplink and downlink audio of an ongoing call. <p>Not for use by third-party applications.</p> Loading
data/etc/privapp-permissions-platform.xml +1 −0 Original line number Diff line number Diff line Loading @@ -465,6 +465,7 @@ applications that come with the platform <!-- Permission required for CTS test - SystemMediaRouter2Test --> <permission name="android.permission.MEDIA_CONTENT_CONTROL"/> <permission name="android.permission.MODIFY_AUDIO_ROUTING"/> <permission name="android.permission.MODIFY_AUDIO_SYSTEM_SETTINGS"/> <!-- Permission required for CTS test - CallAudioInterceptionTest --> <permission name="android.permission.CALL_AUDIO_INTERCEPTION"/> <!-- Permission required for CTS test - CtsPermission5TestCases --> Loading
media/java/android/media/AudioDeviceVolumeManager.java +9 −4 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.media; import android.Manifest; import android.annotation.CallbackExecutor; import android.annotation.IntDef; import android.annotation.NonNull; Loading Loading @@ -318,8 +319,10 @@ public class AudioDeviceVolumeManager { * @param ada the device for which volume is to be modified */ @SystemApi // TODO alternatively require MODIFY_AUDIO_SYSTEM_SETTINGS when defined @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) @RequiresPermission(anyOf = { Manifest.permission.MODIFY_AUDIO_ROUTING, Manifest.permission.MODIFY_AUDIO_SYSTEM_SETTINGS }) public void setDeviceVolume(@NonNull VolumeInfo vi, @NonNull AudioDeviceAttributes ada) { try { getService().setDeviceVolume(vi, ada, mPackageName); Loading @@ -340,8 +343,10 @@ public class AudioDeviceVolumeManager { * @param ada the device for which volume is to be retrieved */ @SystemApi // TODO alternatively require MODIFY_AUDIO_SYSTEM_SETTINGS when defined @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) @RequiresPermission(anyOf = { Manifest.permission.MODIFY_AUDIO_ROUTING, Manifest.permission.MODIFY_AUDIO_SYSTEM_SETTINGS }) public @NonNull VolumeInfo getDeviceVolume(@NonNull VolumeInfo vi, @NonNull AudioDeviceAttributes ada) { try { Loading
media/java/android/media/IAudioService.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -106,9 +106,11 @@ interface IAudioService { void setStreamVolumeWithAttribution(int streamType, int index, int flags, in String callingPackage, in String attributionTag); @EnforcePermission(anyOf = {"MODIFY_AUDIO_ROUTING", "MODIFY_AUDIO_SYSTEM_SETTINGS"}) void setDeviceVolume(in VolumeInfo vi, in AudioDeviceAttributes ada, in String callingPackage); @EnforcePermission(anyOf = {"MODIFY_AUDIO_ROUTING", "MODIFY_AUDIO_SYSTEM_SETTINGS"}) VolumeInfo getDeviceVolume(in VolumeInfo vi, in AudioDeviceAttributes ada, in String callingPackage); Loading