[DO NOT MERGE] Handle SHUTDOWN Intent in BluetoothManagerService

Bug: 207521630
Test: reboot device and check log
Change-Id: I23f8bfb1c6d5fcf9a09c9baaa1b6555188fe0e2e
This commit is contained in:
jonerlin
2022-03-22 21:57:37 +08:00
committed by Joner Lin
parent c6c53dbf39
commit b20910f989

View File

@@ -462,6 +462,22 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
Slog.i(TAG, "Device disconnected, reactivating pending flag changes");
onInitFlagsChanged();
}
} else if (action.equals(Intent.ACTION_SHUTDOWN)) {
Slog.i(TAG, "Device is shutting down.");
mBluetoothLock.readLock().lock();
try {
mEnable = false;
mEnableExternal = false;
if (mBluetooth != null && (mState == BluetoothAdapter.STATE_BLE_ON)) {
mBluetooth.onBrEdrDown(mContext.getAttributionSource());
} else if (mBluetooth != null && (mState == BluetoothAdapter.STATE_ON)) {
mBluetooth.disable(mContext.getAttributionSource());
}
} catch (RemoteException e) {
Slog.e(TAG, "Unable to shutdown Bluetooth", e);
} finally {
mBluetoothLock.readLock().unlock();
}
}
}
};
@@ -515,6 +531,7 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
filter.addAction(Intent.ACTION_SETTING_RESTORED);
filter.addAction(BluetoothA2dp.ACTION_CONNECTION_STATE_CHANGED);
filter.addAction(BluetoothHearingAid.ACTION_CONNECTION_STATE_CHANGED);
filter.addAction(Intent.ACTION_SHUTDOWN);
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
mContext.registerReceiver(mReceiver, filter);