diff --git a/star_lock/lib/blue/blue_manage.dart b/star_lock/lib/blue/blue_manage.dart index 869d005b..9219f6a7 100644 --- a/star_lock/lib/blue/blue_manage.dart +++ b/star_lock/lib/blue/blue_manage.dart @@ -181,7 +181,7 @@ class BlueManage { Completer completer = Completer(); var subscription = FlutterBluePlus.scanResults.listen((results) { print("startScanSingle扫描到的设备:$results"); - bool isExit = results.any((element) => element.device.platformName == deviceName); + bool isExit = results.any((element) => (element.device.platformName == deviceName) || (element.advertisementData.advName == deviceName)); if (isExit) { for (var scanResult in results) { if (((scanResult.advertisementData.serviceUuids.isNotEmpty @@ -192,7 +192,7 @@ class BlueManage { (scanResult.rssi >= -100)) { // 查询id相同的元素 final knownDeviceIndex = scanDevices - .indexWhere((d) => d.device.platformName == scanResult.device.platformName); + .indexWhere((d) => (d.device.platformName == scanResult.device.platformName) || (d.advertisementData.advName == scanResult.advertisementData.advName)); // 不存在的时候返回-1 if (knownDeviceIndex >= 0) { scanDevices[knownDeviceIndex] = scanResult; @@ -256,7 +256,7 @@ class BlueManage { (scanResult.rssi >= -100)) { // 查询id相同的元素 final knownDeviceIndex = scanDevices - .indexWhere((d) => d.device.platformName == scanResult.device.platformName); + .indexWhere((d) => (d.device.platformName == scanResult.device.platformName) || (d.advertisementData.advName == scanResult.advertisementData.advName)); // 不存在的时候返回-1 if (knownDeviceIndex >= 0) { scanDevices[knownDeviceIndex] = scanResult; @@ -333,7 +333,7 @@ class BlueManage { connectDeviceName = deviceName; List devicesList = scanDevices; //判断列表里面有设备则不开启扫描 - bool isExistDevice = scanDevices.any((element) => element.device.platformName == connectDeviceName); + bool isExistDevice = scanDevices.any((element) => element.device.platformName == connectDeviceName || element.advertisementData.advName == connectDeviceName); if (isAddEquipment == false && isExistDevice == false) { startScanSingle(deviceName, 10, (List scanDevices) { print("扫描到的设备:$scanDevices"); @@ -350,10 +350,10 @@ class BlueManage { {bool isAddEquipment = false}) async { // 判断数组列表里面是否有这个设备 print("devicesList:$devicesList"); - final knownDeviceIndex = devicesList.indexWhere((d) => d.device.platformName == deviceName); + final knownDeviceIndex = devicesList.indexWhere((d) => (d.device.platformName == deviceName) || (d.advertisementData.advName == deviceName)); if (knownDeviceIndex >= 0) { // 存在的时候赋值 - connectDeviceMacAddress = devicesList[knownDeviceIndex].device.platformName; + connectDeviceMacAddress = devicesList[knownDeviceIndex].advertisementData.advName.isNotEmpty ? devicesList[knownDeviceIndex].advertisementData.advName : devicesList[knownDeviceIndex].device.platformName; bluetoothConnectDevice = devicesList[knownDeviceIndex].device; print('bluetoothConnectDevice: $bluetoothConnectDevice');