修改蓝牙不返回advName添加platformName兼用逻辑
This commit is contained in:
parent
b77766f203
commit
4fda112b8b
@ -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');
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user