diff --git a/api/system-current.txt b/api/system-current.txt index 1128556135a03..4c5918961fdf6 100755 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -4317,7 +4317,7 @@ package android.media { } public final class AudioRecordingConfiguration implements android.os.Parcelable { - method public int getClientUid(); + method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int getClientUid(); } public class HwAudioSource { diff --git a/media/java/android/media/AudioRecordingConfiguration.java b/media/java/android/media/AudioRecordingConfiguration.java index f3613d3665ca2..42841d1784013 100644 --- a/media/java/android/media/AudioRecordingConfiguration.java +++ b/media/java/android/media/AudioRecordingConfiguration.java @@ -18,6 +18,7 @@ package android.media; import android.annotation.IntDef; import android.annotation.NonNull; +import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.TestApi; import android.compat.annotation.UnsupportedAppUsage; @@ -229,13 +230,19 @@ public final class AudioRecordingConfiguration implements Parcelable { *

This information is only available if the caller has the * {@link android.Manifest.permission.MODIFY_AUDIO_ROUTING} * permission. - *
The result is -1 without the permission. * @return the user id + * @throws SecurityException Thrown if the caller is missing the MODIFY_AUDIO_ROUTING permission * * @hide */ @SystemApi - public int getClientUid() { return mClientUid; } + @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) + public int getClientUid() { + if (mClientUid == -1) { + throw new SecurityException("MODIFY_AUDIO_ROUTING permission is missing"); + } + return mClientUid; + } /** * Returns information about the audio input device used for this recording.