OSDN Git Service

Don't disconnect an A2DP device when connecting to same device
authorPavlin Radoslavov <pavlin@google.com>
Thu, 17 Nov 2016 04:51:06 +0000 (20:51 -0800)
committerAndre Eisenbach <eisenbach@google.com>
Thu, 17 Nov 2016 05:29:08 +0000 (05:29 +0000)
When processing a connect request for an A2DP device, Settings
would trigger a disconnect request for all A2DP devices that
have state of CONNECTED, CONNECTING or DISCONNECTING, including
eventually the device we are connecting to.
This could create timing-related issues, and is not necessary.
Now we explicitly check to avoid disconnecting the device we are
connecting to.

Test: Manual A2DP testing with a phone and wireless headsets
Bug: 32688022
Change-Id: I572dd87c071829b734513c4b928a4d65fe539520

packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpProfile.java

index 9608daa..24ede16 100755 (executable)
@@ -116,6 +116,10 @@ public final class A2dpProfile implements LocalBluetoothProfile {
         List<BluetoothDevice> sinks = getConnectedDevices();
         if (sinks != null) {
             for (BluetoothDevice sink : sinks) {
+                if (sink.equals(device)) {
+                    Log.w(TAG, "Connecting to device " + device + " : disconnect skipped");
+                    continue;
+                }
                 mService.disconnect(sink);
             }
         }