修改蓝牙不返回advName添加platformName兼用逻辑

This commit is contained in:
魏少阳 2024-04-18 15:39:32 +08:00
parent b77766f203
commit 4fda112b8b

View File

@ -181,7 +181,7 @@ class BlueManage {
Completer<dynamic> completer = Completer<dynamic>(); Completer<dynamic> completer = Completer<dynamic>();
var subscription = FlutterBluePlus.scanResults.listen((results) { var subscription = FlutterBluePlus.scanResults.listen((results) {
print("startScanSingle扫描到的设备:$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) { if (isExit) {
for (var scanResult in results) { for (var scanResult in results) {
if (((scanResult.advertisementData.serviceUuids.isNotEmpty if (((scanResult.advertisementData.serviceUuids.isNotEmpty
@ -192,7 +192,7 @@ class BlueManage {
(scanResult.rssi >= -100)) { (scanResult.rssi >= -100)) {
// id相同的元素 // id相同的元素
final knownDeviceIndex = scanDevices 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 // -1
if (knownDeviceIndex >= 0) { if (knownDeviceIndex >= 0) {
scanDevices[knownDeviceIndex] = scanResult; scanDevices[knownDeviceIndex] = scanResult;
@ -256,7 +256,7 @@ class BlueManage {
(scanResult.rssi >= -100)) { (scanResult.rssi >= -100)) {
// id相同的元素 // id相同的元素
final knownDeviceIndex = scanDevices 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 // -1
if (knownDeviceIndex >= 0) { if (knownDeviceIndex >= 0) {
scanDevices[knownDeviceIndex] = scanResult; scanDevices[knownDeviceIndex] = scanResult;
@ -333,7 +333,7 @@ class BlueManage {
connectDeviceName = deviceName; connectDeviceName = deviceName;
List<ScanResult> devicesList = scanDevices; List<ScanResult> 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) { if (isAddEquipment == false && isExistDevice == false) {
startScanSingle(deviceName, 10, (List<ScanResult> scanDevices) { startScanSingle(deviceName, 10, (List<ScanResult> scanDevices) {
print("扫描到的设备:$scanDevices"); print("扫描到的设备:$scanDevices");
@ -350,10 +350,10 @@ class BlueManage {
{bool isAddEquipment = false}) async { {bool isAddEquipment = false}) async {
// //
print("devicesList:$devicesList"); 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) { 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; bluetoothConnectDevice = devicesList[knownDeviceIndex].device;
print('bluetoothConnectDevice: $bluetoothConnectDevice'); print('bluetoothConnectDevice: $bluetoothConnectDevice');