Merge "BT: Don't switch devices when one of the connected BT headsets disconnects" am: 0bebfe76fc
am: 2fe13541ad
Change-Id: Iba20aef49c4d34875d8521cba82e6ffc26051ac3
This commit is contained in:
@@ -3100,14 +3100,28 @@ public class AudioService extends IAudioService.Stub {
|
|||||||
boolean success =
|
boolean success =
|
||||||
handleDeviceConnection(connected, outDevice, address, btDeviceName) &&
|
handleDeviceConnection(connected, outDevice, address, btDeviceName) &&
|
||||||
handleDeviceConnection(connected, inDevice, address, btDeviceName);
|
handleDeviceConnection(connected, inDevice, address, btDeviceName);
|
||||||
if (success) {
|
|
||||||
synchronized (mScoClients) {
|
if (!success) {
|
||||||
if (connected) {
|
return;
|
||||||
mBluetoothHeadsetDevice = btDevice;
|
}
|
||||||
} else {
|
|
||||||
mBluetoothHeadsetDevice = null;
|
/* When one BT headset is disconnected while another BT headset
|
||||||
resetBluetoothSco();
|
* is connected, don't mess with the headset device.
|
||||||
}
|
*/
|
||||||
|
if ((state == BluetoothProfile.STATE_DISCONNECTED ||
|
||||||
|
state == BluetoothProfile.STATE_DISCONNECTING) &&
|
||||||
|
mBluetoothHeadset != null &&
|
||||||
|
mBluetoothHeadset.getAudioState(btDevice) == BluetoothHeadset.STATE_AUDIO_CONNECTED) {
|
||||||
|
Log.w(TAG, "SCO connected through another device, returning");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
synchronized (mScoClients) {
|
||||||
|
if (connected) {
|
||||||
|
mBluetoothHeadsetDevice = btDevice;
|
||||||
|
} else {
|
||||||
|
mBluetoothHeadsetDevice = null;
|
||||||
|
resetBluetoothSco();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5253,7 +5267,6 @@ public class AudioService extends IAudioService.Stub {
|
|||||||
state = intent.getIntExtra(BluetoothProfile.EXTRA_STATE,
|
state = intent.getIntExtra(BluetoothProfile.EXTRA_STATE,
|
||||||
BluetoothProfile.STATE_DISCONNECTED);
|
BluetoothProfile.STATE_DISCONNECTED);
|
||||||
BluetoothDevice btDevice = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
|
BluetoothDevice btDevice = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
|
||||||
|
|
||||||
setBtScoDeviceConnectionState(btDevice, state);
|
setBtScoDeviceConnectionState(btDevice, state);
|
||||||
} else if (action.equals(BluetoothHeadset.ACTION_AUDIO_STATE_CHANGED)) {
|
} else if (action.equals(BluetoothHeadset.ACTION_AUDIO_STATE_CHANGED)) {
|
||||||
boolean broadcast = false;
|
boolean broadcast = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user