修改蓝牙不返回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>();
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<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) {
startScanSingle(deviceName, 10, (List<ScanResult> 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');