diff options
| author | 2023-04-06 17:36:15 +0000 | |
|---|---|---|
| committer | 2023-04-06 18:02:33 +0000 | |
| commit | abb0ffa87d2ec1568cba41ec78f6749271e4a6cc (patch) | |
| tree | caa3fb1ea1d252ff7545a3229dea6dc07fbdf1ad | |
| parent | f3bbc7779b9c11277fafd4cedd6b7c77a835b0a9 (diff) | |
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
| -rw-r--r-- | services/core/java/com/android/server/location/contexthub/ContextHubService.java | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/location/contexthub/ContextHubService.java b/services/core/java/com/android/server/location/contexthub/ContextHubService.java index 653b71828c5b..5f783742bd26 100644 --- a/services/core/java/com/android/server/location/contexthub/ContextHubService.java +++ b/services/core/java/com/android/server/location/contexthub/ContextHubService.java @@ -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); } /** |