diff options
Diffstat (limited to 'service/java/com/android/server/bluetooth/BluetoothManagerService.java')
| -rw-r--r-- | service/java/com/android/server/bluetooth/BluetoothManagerService.java | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/service/java/com/android/server/bluetooth/BluetoothManagerService.java b/service/java/com/android/server/bluetooth/BluetoothManagerService.java index da4b71ed55..cab6fc7be7 100644 --- a/service/java/com/android/server/bluetooth/BluetoothManagerService.java +++ b/service/java/com/android/server/bluetooth/BluetoothManagerService.java @@ -2832,11 +2832,18 @@ public class BluetoothManagerService extends IBluetoothManager.Stub { sendBluetoothStateCallback(isUp); sendBleStateChanged(prevState, newState); - } else if (newState == BluetoothAdapter.STATE_BLE_TURNING_ON - || newState == BluetoothAdapter.STATE_BLE_TURNING_OFF) { + } else if (newState == BluetoothAdapter.STATE_BLE_TURNING_ON) { sendBleStateChanged(prevState, newState); isStandardBroadcast = false; - + } else if (newState == BluetoothAdapter.STATE_BLE_TURNING_OFF) { + sendBleStateChanged(prevState, newState); + if (prevState != BluetoothAdapter.STATE_TURNING_OFF) { + isStandardBroadcast = false; + } else { + // Broadcast as STATE_OFF for app that do not receive BLE update + newState = BluetoothAdapter.STATE_OFF; + sendBrEdrDownCallback(mContext.getAttributionSource()); + } } else if (newState == BluetoothAdapter.STATE_TURNING_ON || newState == BluetoothAdapter.STATE_TURNING_OFF) { sendBleStateChanged(prevState, newState); |
