diff --git a/services/core/java/com/android/server/BluetoothManagerService.java b/services/core/java/com/android/server/BluetoothManagerService.java index 02b1380715475..216794139c417 100644 --- a/services/core/java/com/android/server/BluetoothManagerService.java +++ b/services/core/java/com/android/server/BluetoothManagerService.java @@ -632,23 +632,14 @@ class BluetoothManagerService extends IBluetoothManager.Stub { if (DBG) { Slog.d(TAG, "Binder is dead - unregister " + mPackageName); } - if (isBleAppPresent()) { - // Nothing to do, another app is here. - return; - } - if (DBG) { - Slog.d(TAG, "Disabling LE only mode after application crash"); - } - try { - mBluetoothLock.readLock().lock(); - if (mBluetooth != null && mBluetooth.getState() == BluetoothAdapter.STATE_BLE_ON) { - mEnable = false; - mBluetooth.onBrEdrDown(); + + for (Map.Entry entry : mBleApps.entrySet()) { + IBinder token = entry.getKey(); + ClientDeathRecipient deathRec = entry.getValue(); + if (deathRec.equals(this)) { + updateBleAppCount(token, false, mPackageName); + break; } - } catch (RemoteException e) { - Slog.e(TAG, "Unable to call onBrEdrDown", e); - } finally { - mBluetoothLock.readLock().unlock(); } }