diff --git a/core/api/system-current.txt b/core/api/system-current.txt
index 0c94fc7f9b0b..1bc3d8b11229 100644
--- a/core/api/system-current.txt
+++ b/core/api/system-current.txt
@@ -23,6 +23,7 @@ package android {
field public static final String ACCESS_TV_DESCRAMBLER = "android.permission.ACCESS_TV_DESCRAMBLER";
field public static final String ACCESS_TV_SHARED_FILTER = "android.permission.ACCESS_TV_SHARED_FILTER";
field public static final String ACCESS_TV_TUNER = "android.permission.ACCESS_TV_TUNER";
+ field public static final String ACCESS_ULTRASOUND = "android.permission.ACCESS_ULTRASOUND";
field public static final String ACCESS_VIBRATOR_STATE = "android.permission.ACCESS_VIBRATOR_STATE";
field public static final String ACTIVITY_EMBEDDING = "android.permission.ACTIVITY_EMBEDDING";
field public static final String ADJUST_RUNTIME_PERMISSIONS_POLICY = "android.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY";
@@ -5664,6 +5665,7 @@ package android.media {
method public int getCapturePreset();
method public int getSystemUsage();
method public static boolean isSystemUsage(int);
+ field @RequiresPermission(android.Manifest.permission.ACCESS_ULTRASOUND) public static final int CONTENT_TYPE_ULTRASOUND = 1997; // 0x7cd
field public static final int FLAG_BEACON = 8; // 0x8
field public static final int FLAG_BYPASS_INTERRUPTION_POLICY = 64; // 0x40
field public static final int FLAG_BYPASS_MUTE = 128; // 0x80
@@ -5680,6 +5682,7 @@ package android.media {
method public android.media.AudioAttributes.Builder setCapturePreset(int);
method @NonNull @RequiresPermission(android.Manifest.permission.CAPTURE_AUDIO_HOTWORD) public android.media.AudioAttributes.Builder setHotwordModeEnabled(boolean);
method public android.media.AudioAttributes.Builder setInternalCapturePreset(int);
+ method @NonNull public android.media.AudioAttributes.Builder setInternalContentType(int);
method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public android.media.AudioAttributes.Builder setSystemUsage(int);
}
@@ -5895,6 +5898,7 @@ package android.media {
field @RequiresPermission(android.Manifest.permission.CAPTURE_AUDIO_OUTPUT) public static final int ECHO_REFERENCE = 1997; // 0x7cd
field @RequiresPermission(android.Manifest.permission.CAPTURE_AUDIO_HOTWORD) public static final int HOTWORD = 1999; // 0x7cf
field @RequiresPermission(android.Manifest.permission.CAPTURE_AUDIO_OUTPUT) public static final int RADIO_TUNER = 1998; // 0x7ce
+ field @RequiresPermission(android.Manifest.permission.ACCESS_ULTRASOUND) public static final int ULTRASOUND = 2000; // 0x7d0
}
public final class MediaRouter2 {
diff --git a/core/jni/android_media_AudioAttributes.cpp b/core/jni/android_media_AudioAttributes.cpp
index 423ef7cd980b..d7fc1cc007a6 100644
--- a/core/jni/android_media_AudioAttributes.cpp
+++ b/core/jni/android_media_AudioAttributes.cpp
@@ -57,7 +57,7 @@ static struct {
jmethodID setUsage;
jmethodID setSystemUsage;
jmethodID setInternalCapturePreset;
- jmethodID setContentType;
+ jmethodID setInternalContentType;
jmethodID replaceFlags;
jmethodID addTag;
} gAudioAttributesBuilderMethods;
@@ -127,7 +127,7 @@ static jint nativeAudioAttributesToJavaAudioAttributes(
gAudioAttributesBuilderMethods.setInternalCapturePreset,
attributes.source);
env->CallObjectMethod(jAttributeBuilder.get(),
- gAudioAttributesBuilderMethods.setContentType,
+ gAudioAttributesBuilderMethods.setInternalContentType,
attributes.content_type);
env->CallObjectMethod(jAttributeBuilder.get(),
gAudioAttributesBuilderMethods.replaceFlags,
@@ -202,9 +202,9 @@ int register_android_media_AudioAttributes(JNIEnv *env)
gAudioAttributesBuilderMethods.setInternalCapturePreset = GetMethodIDOrDie(
env, audioAttributesBuilderClass, "setInternalCapturePreset",
"(I)Landroid/media/AudioAttributes$Builder;");
- gAudioAttributesBuilderMethods.setContentType = GetMethodIDOrDie(
- env, audioAttributesBuilderClass, "setContentType",
- "(I)Landroid/media/AudioAttributes$Builder;");
+ gAudioAttributesBuilderMethods.setInternalContentType =
+ GetMethodIDOrDie(env, audioAttributesBuilderClass, "setInternalContentType",
+ "(I)Landroid/media/AudioAttributes$Builder;");
gAudioAttributesBuilderMethods.replaceFlags = GetMethodIDOrDie(
env, audioAttributesBuilderClass, "replaceFlags",
"(I)Landroid/media/AudioAttributes$Builder;");
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index ae2052b66f9c..d9b340c8cd2f 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -4745,6 +4745,12 @@
+
+
+