Merge "Add SystemApi to AudioManager method" am: 837956204e

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1863722

Change-Id: I7c3edc556a9fd84a136afb099b5f82149eda3d00
This commit is contained in:
William Escande
2021-12-21 13:38:54 +00:00
committed by Automerger Merge Worker
2 changed files with 48 additions and 39 deletions

View File

@@ -113,6 +113,8 @@ package android.media {
public class AudioManager { public class AudioManager {
method public void adjustStreamVolumeForUid(int, int, int, @NonNull String, int, int, int); method public void adjustStreamVolumeForUid(int, int, int, @NonNull String, int, int, int);
method public void adjustSuggestedStreamVolumeForUid(int, int, int, @NonNull String, int, int, int); method public void adjustSuggestedStreamVolumeForUid(int, int, int, @NonNull String, int, int, int);
method @NonNull public java.util.List<android.bluetooth.BluetoothCodecConfig> getHwOffloadFormatsSupportedForA2dp();
method @NonNull public java.util.List<android.bluetooth.BluetoothLeAudioCodecConfig> getHwOffloadFormatsSupportedForLeAudio();
method @RequiresPermission("android.permission.BLUETOOTH_STACK") public void handleBluetoothActiveDeviceChanged(@Nullable android.bluetooth.BluetoothDevice, @Nullable android.bluetooth.BluetoothDevice, @NonNull android.media.BtProfileConnectionInfo); method @RequiresPermission("android.permission.BLUETOOTH_STACK") public void handleBluetoothActiveDeviceChanged(@Nullable android.bluetooth.BluetoothDevice, @Nullable android.bluetooth.BluetoothDevice, @NonNull android.media.BtProfileConnectionInfo);
method @RequiresPermission("android.permission.BLUETOOTH_STACK") public void setA2dpSuspended(boolean); method @RequiresPermission("android.permission.BLUETOOTH_STACK") public void setA2dpSuspended(boolean);
method @RequiresPermission("android.permission.BLUETOOTH_STACK") public void setBluetoothHeadsetProperties(@NonNull String, boolean, boolean); method @RequiresPermission("android.permission.BLUETOOTH_STACK") public void setBluetoothHeadsetProperties(@NonNull String, boolean, boolean);

View File

@@ -6791,44 +6791,54 @@ public class AudioManager {
/** /**
* Returns a list of audio formats that corresponds to encoding formats * Returns a list of audio formats that corresponds to encoding formats
* supported on offload path for A2DP and LE audio playback. * supported on offload path for A2DP playback.
* *
* @param deviceType Indicates the target device type {@link AudioSystem.DeviceType}
* @return a list of {@link BluetoothCodecConfig} objects containing encoding formats * @return a list of {@link BluetoothCodecConfig} objects containing encoding formats
* supported for offload A2DP playback or a list of {@link BluetoothLeAudioCodecConfig} * supported for offload A2DP playback
* objects containing encoding formats supported for offload LE Audio playback
* @hide * @hide
*/ */
public List<?> getHwOffloadFormatsSupportedForBluetoothMedia( @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
@AudioSystem.DeviceType int deviceType) { public @NonNull List<BluetoothCodecConfig> getHwOffloadFormatsSupportedForA2dp() {
ArrayList<Integer> formatsList = new ArrayList<Integer>(); ArrayList<Integer> formatsList = new ArrayList<>();
ArrayList<BluetoothCodecConfig> a2dpCodecConfigList = new ArrayList<BluetoothCodecConfig>(); ArrayList<BluetoothCodecConfig> codecConfigList = new ArrayList<>();
ArrayList<BluetoothLeAudioCodecConfig> leAudioCodecConfigList =
new ArrayList<BluetoothLeAudioCodecConfig>();
if (deviceType != AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP int status = AudioSystem.getHwOffloadFormatsSupportedForBluetoothMedia(
&& deviceType != AudioSystem.DEVICE_OUT_BLE_HEADSET) { AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP, formatsList);
throw new IllegalArgumentException(
"Illegal devicetype for the getHwOffloadFormatsSupportedForBluetoothMedia");
}
int status = AudioSystem.getHwOffloadFormatsSupportedForBluetoothMedia(deviceType,
formatsList);
if (status != AudioManager.SUCCESS) { if (status != AudioManager.SUCCESS) {
Log.e(TAG, "getHwOffloadFormatsSupportedForBluetoothMedia for deviceType " Log.e(TAG, "getHwOffloadEncodingFormatsSupportedForA2DP failed:" + status);
+ deviceType + " failed:" + status); return codecConfigList;
return a2dpCodecConfigList;
} }
if (deviceType == AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP) {
for (Integer format : formatsList) { for (Integer format : formatsList) {
int btSourceCodec = AudioSystem.audioFormatToBluetoothSourceCodec(format); int btSourceCodec = AudioSystem.audioFormatToBluetoothSourceCodec(format);
if (btSourceCodec != BluetoothCodecConfig.SOURCE_CODEC_TYPE_INVALID) { if (btSourceCodec != BluetoothCodecConfig.SOURCE_CODEC_TYPE_INVALID) {
a2dpCodecConfigList.add(new BluetoothCodecConfig(btSourceCodec)); codecConfigList.add(new BluetoothCodecConfig(btSourceCodec));
} }
} }
return a2dpCodecConfigList; return codecConfigList;
} else if (deviceType == AudioSystem.DEVICE_OUT_BLE_HEADSET) { }
/**
* Returns a list of audio formats that corresponds to encoding formats
* supported on offload path for Le audio playback.
*
* @return a list of {@link BluetoothLeAudioCodecConfig} objects containing encoding formats
* supported for offload Le Audio playback
* @hide
*/
@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
@NonNull
public List<BluetoothLeAudioCodecConfig> getHwOffloadFormatsSupportedForLeAudio() {
ArrayList<Integer> formatsList = new ArrayList<>();
ArrayList<BluetoothLeAudioCodecConfig> leAudioCodecConfigList = new ArrayList<>();
int status = AudioSystem.getHwOffloadFormatsSupportedForBluetoothMedia(
AudioSystem.DEVICE_OUT_BLE_HEADSET, formatsList);
if (status != AudioManager.SUCCESS) {
Log.e(TAG, "getHwOffloadEncodingFormatsSupportedForLeAudio failed:" + status);
return leAudioCodecConfigList;
}
for (Integer format : formatsList) { for (Integer format : formatsList) {
int btLeAudioCodec = AudioSystem.audioFormatToBluetoothLeAudioSourceCodec(format); int btLeAudioCodec = AudioSystem.audioFormatToBluetoothLeAudioSourceCodec(format);
if (btLeAudioCodec != BluetoothLeAudioCodecConfig.SOURCE_CODEC_TYPE_INVALID) { if (btLeAudioCodec != BluetoothLeAudioCodecConfig.SOURCE_CODEC_TYPE_INVALID) {
@@ -6839,9 +6849,6 @@ public class AudioManager {
} }
return leAudioCodecConfigList; return leAudioCodecConfigList;
} }
Log.e(TAG, "Input deviceType " + deviceType + " doesn't support.");
return a2dpCodecConfigList;
}
// Since we need to calculate the changes since THE LAST NOTIFICATION, and not since the // Since we need to calculate the changes since THE LAST NOTIFICATION, and not since the
// (unpredictable) last time updateAudioPortCache() was called by someone, keep a list // (unpredictable) last time updateAudioPortCache() was called by someone, keep a list