diff --git a/api/system-current.txt b/api/system-current.txt index b99ddb313ce05..9d05dffe8191c 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.