From 0a9a9a39d96110abff3d739b773415909b6d6096 Mon Sep 17 00:00:00 2001 From: Eugene Susla Date: Tue, 10 Nov 2020 10:41:33 -0800 Subject: [PATCH] Check connected devices in addition to paired ones when matching Some bluetooth devices do not require to be paired, so we should also check the list of currently-connected devices when matching. Test: manual Change-Id: I2d87b24982b4ac0d773b40990c739c7bcfe93838 --- .../DeviceDiscoveryService.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceDiscoveryService.java b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceDiscoveryService.java index c5876af268a97..e8ef5f2f7039f 100644 --- a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceDiscoveryService.java +++ b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceDiscoveryService.java @@ -32,6 +32,7 @@ import android.app.Service; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothManager; +import android.bluetooth.BluetoothProfile; import android.bluetooth.le.BluetoothLeScanner; import android.bluetooth.le.ScanCallback; import android.bluetooth.le.ScanFilter; @@ -84,6 +85,7 @@ public class DeviceDiscoveryService extends Service { static DeviceDiscoveryService sInstance; + private BluetoothManager mBluetoothManager; private BluetoothAdapter mBluetoothAdapter; private WifiManager mWifiManager; @Nullable private BluetoothLeScanner mBLEScanner; @@ -141,7 +143,8 @@ public class DeviceDiscoveryService extends Service { if (DEBUG) Log.i(LOG_TAG, "onCreate()"); - mBluetoothAdapter = getSystemService(BluetoothManager.class).getAdapter(); + mBluetoothManager = getSystemService(BluetoothManager.class); + mBluetoothAdapter = mBluetoothManager.getAdapter(); mBLEScanner = mBluetoothAdapter.getBluetoothLeScanner(); mWifiManager = getSystemService(WifiManager.class); @@ -186,6 +189,14 @@ public class DeviceDiscoveryService extends Service { for (BluetoothDevice dev : emptyIfNull(mBluetoothAdapter.getBondedDevices())) { onDeviceFound(DeviceFilterPair.findMatch(dev, mBluetoothFilters)); } + for (BluetoothDevice dev : emptyIfNull( + mBluetoothManager.getConnectedDevices(BluetoothProfile.GATT))) { + onDeviceFound(DeviceFilterPair.findMatch(dev, mBluetoothFilters)); + } + for (BluetoothDevice dev : emptyIfNull( + mBluetoothManager.getConnectedDevices(BluetoothProfile.GATT_SERVER))) { + onDeviceFound(DeviceFilterPair.findMatch(dev, mBluetoothFilters)); + } } if (shouldScan(mBluetoothFilters)) {