summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/system-current.txt1
-rw-r--r--media/java/android/media/AudioAttributes.java14
2 files changed, 15 insertions, 0 deletions
diff --git a/api/system-current.txt b/api/system-current.txt
index 6b51eabf6f34..5945723431ea 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -3879,6 +3879,7 @@ package android.media {
field public static final int FLAG_BYPASS_INTERRUPTION_POLICY = 64; // 0x40
field public static final int FLAG_BYPASS_MUTE = 128; // 0x80
field public static final int FLAG_HW_HOTWORD = 32; // 0x20
+ field @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public static final int USAGE_CALL_ASSISTANT = 17; // 0x11
}
public static class AudioAttributes.Builder {
diff --git a/media/java/android/media/AudioAttributes.java b/media/java/android/media/AudioAttributes.java
index c03e8e20175d..8de3e0a63815 100644
--- a/media/java/android/media/AudioAttributes.java
+++ b/media/java/android/media/AudioAttributes.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.UnsupportedAppUsage;
import android.media.audiopolicy.AudioProductStrategy;
@@ -178,6 +179,13 @@ public final class AudioAttributes implements Parcelable {
* utterances.
*/
public final static int USAGE_ASSISTANT = 16;
+ /**
+ * @hide
+ * Usage value to use for assistant voice interaction with remote caller on Cell and VoIP calls.
+ */
+ @SystemApi
+ @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
+ public static final int USAGE_CALL_ASSISTANT = 17;
/**
* IMPORTANT: when adding new usage types, add them to SDK_USAGES and update SUPPRESSIBLE_USAGES
@@ -254,6 +262,7 @@ public final class AudioAttributes implements Parcelable {
SUPPRESSIBLE_USAGES.put(USAGE_ASSISTANCE_NAVIGATION_GUIDANCE, SUPPRESSIBLE_MEDIA);
SUPPRESSIBLE_USAGES.put(USAGE_GAME, SUPPRESSIBLE_MEDIA);
SUPPRESSIBLE_USAGES.put(USAGE_ASSISTANT, SUPPRESSIBLE_MEDIA);
+ SUPPRESSIBLE_USAGES.put(USAGE_CALL_ASSISTANT, SUPPRESSIBLE_NEVER);
/** default volume assignment is STREAM_MUSIC, handle unknown usage as media */
SUPPRESSIBLE_USAGES.put(USAGE_UNKNOWN, SUPPRESSIBLE_MEDIA);
SUPPRESSIBLE_USAGES.put(USAGE_ASSISTANCE_SONIFICATION, SUPPRESSIBLE_SYSTEM);
@@ -682,6 +691,7 @@ public final class AudioAttributes implements Parcelable {
case USAGE_GAME:
case USAGE_VIRTUAL_SOURCE:
case USAGE_ASSISTANT:
+ case USAGE_CALL_ASSISTANT:
mUsage = usage;
break;
default:
@@ -1135,6 +1145,8 @@ public final class AudioAttributes implements Parcelable {
return new String("USAGE_GAME");
case USAGE_ASSISTANT:
return new String("USAGE_ASSISTANT");
+ case USAGE_CALL_ASSISTANT:
+ return new String("USAGE_CALL_ASSISTANT");
default:
return new String("unknown usage " + usage);
}
@@ -1238,6 +1250,7 @@ public final class AudioAttributes implements Parcelable {
case USAGE_ASSISTANCE_SONIFICATION:
return AudioSystem.STREAM_SYSTEM;
case USAGE_VOICE_COMMUNICATION:
+ case USAGE_CALL_ASSISTANT:
return AudioSystem.STREAM_VOICE_CALL;
case USAGE_VOICE_COMMUNICATION_SIGNALLING:
return fromGetVolumeControlStream ?
@@ -1302,6 +1315,7 @@ public final class AudioAttributes implements Parcelable {
USAGE_ASSISTANCE_SONIFICATION,
USAGE_GAME,
USAGE_ASSISTANT,
+ USAGE_CALL_ASSISTANT,
})
@Retention(RetentionPolicy.SOURCE)
public @interface AttributeUsage {}