避免使用React-Native-Ble-Plx重复的BLE设备



我正在使用React-Native-Ble-Plx在我的应用中实现蓝牙

蓝牙扫描效果很好,但在Android中包含重复项,而在iOS中则可以正常工作,因为iOS中的允许图是默认为ios。

在Android中,默认值为真。请提供作为解决方案的解决方案,以使用React-native-native-ble-plx的允许duplicates属性滤除重复项

从文档中使用StartDevicescan的语法: -

bleManager.startDeviceScan(
  UUIDs: ?Array<UUID>,
  options: ?ScanOptions,
  listener: (error: ?Error, scannedDevice: ?Device) => void
)

https://github.com/polidea/reaect-native-ble-plx/wiki/bluetooth-scanning

我的代码: -

    this.manager.startDeviceScan(null, {allowDuplicates:false}, (error, device) => { 
//2nd parameter is scanOptions
        if (error) {
            // Handle error (scanning will be stopped automatically)
            return
        }
       this.state.count++
        if(this.state.count>10)
        {
          this.manager.stopDeviceScan();
        }
        console.log("id",device.id) 
}

请告诉任何语法错误是否持续

此设置仅是iOS,并且也不能阻止重复项在此显示。您必须使用集合或等效词来确保仅在应用中显示/使用唯一的设置

我使用带有基础设备名称的列表,并使用includes()方法检查副本

  refreshScreen(device){
    if(!this.state.dataNames.includes(device.name)){
      let dataNow = this.state.data;
      dataNow.push(element);
      let names = this.state.dataNames;
      names.push(element.name);
      this.setState(
        {
          refreshing: false,
          data: dataNow,
          dataNames: names, 
        }
      );
    }
  }

此功能添加了不在列表中的设备dataNames

相关内容

  • 没有找到相关文章