diff options
| -rw-r--r-- | core/java/android/server/BluetoothEventLoop.java | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/core/java/android/server/BluetoothEventLoop.java b/core/java/android/server/BluetoothEventLoop.java index 35a582d0a8c3..05be52aa5a2d 100644 --- a/core/java/android/server/BluetoothEventLoop.java +++ b/core/java/android/server/BluetoothEventLoop.java @@ -414,7 +414,13 @@ class BluetoothEventLoop { mBluetoothService.sendUuidIntent(address); } else if (name.equals("Paired")) { if (propValues[1].equals("true")) { - mBluetoothService.getBondState().setBondState(address, BluetoothDevice.BOND_BONDED); + // If locally initiated pairing, we will + // not go to BOND_BONDED state until we have received a + // successful return value in onCreatePairedDeviceResult + if (null == mBluetoothService.getBondState().getPendingOutgoingBonding()) { + mBluetoothService.getBondState().setBondState(address, + BluetoothDevice.BOND_BONDED); + } } else { mBluetoothService.getBondState().setBondState(address, BluetoothDevice.BOND_NONE); |