Monitor BLE_SCAN_ALWAYS_AVAILABLE setting
Check for updates to the Bluetooth scanning setting by montioring BLE_SCAN_ALWAYS_AVAILABLE instead of ACTION_BLE_STATE_CHANGED. Bug: 273547029 Test: Disable main BT setting, disable Bluetooth scanning, verify that CHRE receives a BT setting update, enable Bluetooth scanning, verify that CHRE receives a BT setting update. Test: Disable Bluetooth scanning, disable main BT setting verify that CHRE receives a BT setting update, enable main BT setting, verify that CHRE receives a BT setting update. Change-Id: I147d8632a02d675cbd426108a6099e5dc887b8a7
This commit is contained in:
@@ -519,17 +519,24 @@ public class ContextHubService extends IContextHubService.Stub {
|
||||
BroadcastReceiver btReceiver = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(intent.getAction())
|
||||
|| BluetoothAdapter.ACTION_BLE_STATE_CHANGED.equals(
|
||||
intent.getAction())) {
|
||||
if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(intent.getAction())) {
|
||||
sendBtSettingUpdate(/* forceUpdate= */ false);
|
||||
}
|
||||
}
|
||||
};
|
||||
IntentFilter filter = new IntentFilter();
|
||||
filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
|
||||
filter.addAction(BluetoothAdapter.ACTION_BLE_STATE_CHANGED);
|
||||
mContext.registerReceiver(btReceiver, filter);
|
||||
|
||||
mContext.getContentResolver().registerContentObserver(
|
||||
Settings.Global.getUriFor(Settings.Global.BLE_SCAN_ALWAYS_AVAILABLE),
|
||||
/* notifyForDescendants= */ false,
|
||||
new ContentObserver(/* handler= */ null) {
|
||||
@Override
|
||||
public void onChange(boolean selfChange) {
|
||||
sendBtSettingUpdate(/* forceUpdate= */ false);
|
||||
}
|
||||
}, UserHandle.USER_ALL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user