Loading media/java/android/media/AudioSystem.java +19 −0 Original line number Diff line number Diff line Loading @@ -1134,6 +1134,9 @@ public class AudioSystem public static final Set<Integer> DEVICE_ALL_HDMI_SYSTEM_AUDIO_AND_SPEAKER_SET; /** @hide */ public static final Set<Integer> DEVICE_OUT_ALL_BLE_SET; /** @hide */ public static final Set<Integer> DEVICE_OUT_PICK_FOR_VOLUME_SET; static { DEVICE_OUT_ALL_SET = new HashSet<>(); DEVICE_OUT_ALL_SET.add(DEVICE_OUT_EARPIECE); Loading Loading @@ -1201,6 +1204,22 @@ public class AudioSystem DEVICE_OUT_ALL_BLE_SET.add(DEVICE_OUT_BLE_HEADSET); DEVICE_OUT_ALL_BLE_SET.add(DEVICE_OUT_BLE_SPEAKER); DEVICE_OUT_ALL_BLE_SET.add(DEVICE_OUT_BLE_BROADCAST); DEVICE_OUT_PICK_FOR_VOLUME_SET = new HashSet<>(); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_WIRED_HEADSET); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_WIRED_HEADPHONE); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_USB_DEVICE); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_USB_HEADSET); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLUETOOTH_A2DP); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLUETOOTH_SCO); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLUETOOTH_SCO_HEADSET); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLUETOOTH_SCO_CARKIT); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_HEARING_AID); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLE_HEADSET); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLE_SPEAKER); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLE_BROADCAST); } // input devices Loading services/core/java/com/android/server/audio/AudioService.java +4 −4 Original line number Diff line number Diff line Loading @@ -8030,11 +8030,11 @@ public class AudioService extends IAudioService.Stub } else if (deviceSet.contains(AudioSystem.DEVICE_OUT_SPDIF)) { return AudioSystem.DEVICE_OUT_SPDIF; } else { // At this point, deviceSet should contain exactly one A2DP device; // regardless, return the first A2DP device in numeric order. // If there is no A2DP device, this falls through to log an error. // At this point, deviceSet should contain exactly one removable device; // regardless, return the first removable device in numeric order. // If there is no removable device, this falls through to log an error. for (int deviceType : deviceSet) { if (AudioSystem.DEVICE_OUT_ALL_A2DP_SET.contains(deviceType)) { if (AudioSystem.DEVICE_OUT_PICK_FOR_VOLUME_SET.contains(deviceType)) { return deviceType; } } Loading Loading
media/java/android/media/AudioSystem.java +19 −0 Original line number Diff line number Diff line Loading @@ -1134,6 +1134,9 @@ public class AudioSystem public static final Set<Integer> DEVICE_ALL_HDMI_SYSTEM_AUDIO_AND_SPEAKER_SET; /** @hide */ public static final Set<Integer> DEVICE_OUT_ALL_BLE_SET; /** @hide */ public static final Set<Integer> DEVICE_OUT_PICK_FOR_VOLUME_SET; static { DEVICE_OUT_ALL_SET = new HashSet<>(); DEVICE_OUT_ALL_SET.add(DEVICE_OUT_EARPIECE); Loading Loading @@ -1201,6 +1204,22 @@ public class AudioSystem DEVICE_OUT_ALL_BLE_SET.add(DEVICE_OUT_BLE_HEADSET); DEVICE_OUT_ALL_BLE_SET.add(DEVICE_OUT_BLE_SPEAKER); DEVICE_OUT_ALL_BLE_SET.add(DEVICE_OUT_BLE_BROADCAST); DEVICE_OUT_PICK_FOR_VOLUME_SET = new HashSet<>(); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_WIRED_HEADSET); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_WIRED_HEADPHONE); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_USB_DEVICE); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_USB_HEADSET); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLUETOOTH_A2DP); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLUETOOTH_SCO); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLUETOOTH_SCO_HEADSET); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLUETOOTH_SCO_CARKIT); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_HEARING_AID); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLE_HEADSET); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLE_SPEAKER); DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLE_BROADCAST); } // input devices Loading
services/core/java/com/android/server/audio/AudioService.java +4 −4 Original line number Diff line number Diff line Loading @@ -8030,11 +8030,11 @@ public class AudioService extends IAudioService.Stub } else if (deviceSet.contains(AudioSystem.DEVICE_OUT_SPDIF)) { return AudioSystem.DEVICE_OUT_SPDIF; } else { // At this point, deviceSet should contain exactly one A2DP device; // regardless, return the first A2DP device in numeric order. // If there is no A2DP device, this falls through to log an error. // At this point, deviceSet should contain exactly one removable device; // regardless, return the first removable device in numeric order. // If there is no removable device, this falls through to log an error. for (int deviceType : deviceSet) { if (AudioSystem.DEVICE_OUT_ALL_A2DP_SET.contains(deviceType)) { if (AudioSystem.DEVICE_OUT_PICK_FOR_VOLUME_SET.contains(deviceType)) { return deviceType; } } Loading