summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Łukasz Rymanowski <lukasz.rymanowski@codecoup.pl> 2021-12-21 14:49:11 +0000
committer Łukasz Rymanowski <rlukasz@google.com> 2022-01-04 22:28:10 +0000
commitb42ba0836ba29237e2e519fce730d28eda89bf46 (patch)
treebc83d7cdea63efaa96e727ac4f08a964b8bf4b51
parent0892c27c57ddbd6076b39393e6680fd4c42c4de0 (diff)
AudioDeviceInventory: Fix for switching leaudio active/inactive
When LeAudio device gets Inactive and Active again, it will not be choosen by the Audio Policy as an output device due to this code: https://cs.android.com/android/platform/superproject/+/master:frameworks/av/services/audiopolicy/enginedefault/src/Engine.cpp;l=347;drc=master;bpv=1;bpt=1?q=engine.cpp&ss=android%2Fplatform%2Fsuperproject This is because AUDIO_POLICY_FORCE_NO_BT_A2DP is set. This patch fixes it. Bug: 211079178 Test: play media on LE HS and switch between DUT and LE HS Change-Id: I806a63ef2eaa98736130383bfc0387e5187b1803
-rw-r--r--services/core/java/com/android/server/audio/AudioDeviceInventory.java6
1 files changed, 6 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/audio/AudioDeviceInventory.java b/services/core/java/com/android/server/audio/AudioDeviceInventory.java
index 0a114b924063..fba8c05065f2 100644
--- a/services/core/java/com/android/server/audio/AudioDeviceInventory.java
+++ b/services/core/java/com/android/server/audio/AudioDeviceInventory.java
@@ -1088,6 +1088,12 @@ public class AudioDeviceInventory {
private void makeLeAudioDeviceAvailable(String address, String name, int streamType, int device,
String eventSource) {
if (device != AudioSystem.DEVICE_NONE) {
+
+ /* Audio Policy sees Le Audio similar to A2DP. Let's make sure
+ * AUDIO_POLICY_FORCE_NO_BT_A2DP is not set
+ */
+ mDeviceBroker.setBluetoothA2dpOnInt(true, false /*fromA2dp*/, eventSource);
+
AudioSystem.setDeviceConnectionState(device, AudioSystem.DEVICE_STATE_AVAILABLE,
address, name, AudioSystem.AUDIO_FORMAT_DEFAULT);
mConnectedDevices.put(DeviceInfo.makeDeviceListKey(device, address),