我正在使用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