diff options
author | Eric Laurent <elaurent@google.com> | 2019-12-06 18:15:28 -0800 |
---|---|---|
committer | Eric Laurent <elaurent@google.com> | 2019-12-11 21:38:52 +0000 |
commit | 0eb901b79b314f363848c055f944020f1258c306 (patch) | |
tree | 71117691260f815ee348500b72eb15b7a11f2da3 | |
parent | b333fbc8bb8817f674cf00ae6d2f695be80503dd (diff) |
audio: add call assistant usage
Add audio usage for call assistant use cases.
Used by apps playing over call uplink path for call
screening or other in call assitant features.
This usage is reserved for system apps with privileged permission
android.Manifest.permission.MODIFY_PHONE_STATE.
Bug: 135213843
Test: make
Change-Id: I7a2278f36f44a474a47dd85d276340da4df460f3
-rw-r--r-- | api/system-current.txt | 1 | ||||
-rw-r--r-- | media/java/android/media/AudioAttributes.java | 14 |
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 {} |