如何解决我希望我的应用程序作为蓝牙设备运行,并且应该对具有我的应用程序名称的其他设备可见并与其他设备共享数据
我希望我的应用程序作为蓝牙设备运行,并且应该对其他使用我的应用程序名称的设备可见。 为此,我正在使用 react-native-ble-manager。
我还想将数据共享到连接的设备。但是,当我尝试获取连接的外围设备详细信息(例如其名称、ID)时,控制台日志中没有任何信息。 用于它的代码是...
const startScan = () => {
// skip if scan process is currenly happening
if (isScanning) {
console.log(isScanning) //true
console.log('scaning')
return;
}
// first,clear existing peripherals
peripherals.clear();
setList(Array.from(peripherals.values()));
// then re-scan it
BleManager.scan([],30,true)
.then(() => {
console.log('Scanning...');
setIsScanning(true);
})
.catch((err) => {
console.error(err);
});
console.log('########################')
console.log(list)
console.log(peripherals)
};
在 useEffect 中,我使用 bleEmitter 调用函数..
BleManager.start({ showAlert: false });
// add ble listeners on mount
bleEmitter.addListener('BleManagerdiscoverPeripheral',handlediscoverPeripheral);
bleEmitter.addListener('BleManagerStopScan',handleStopScan);
// bleEmitter.addListener('BleManagerdisconnectPeripheral',handledisconnectedPeripheral);
// bleEmitter.addListener('BleManagerDidUpdateValueForCharacteristic',handleUpdateValueForCharacteristic);
// check location permission only for android device
if (Platform.OS === 'android' && Platform.Version >= 23) {
PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION).then((r1) => {
if (r1) {
console.log('Permission is OK');
return;
}
PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION).then((r2) => {
if (r2) {
console.log('User accept');
return
}
console.log('User refuse');
});
});
}
handlediscoverPeripheral 包含外围细节,代码是...
const handlediscoverPeripheral = (peripheral) => {
console.log('Got ble peripheral',peripheral);
if (!peripheral.name) {
peripheral.name = 'NO NAME';
}
peripherals.set(peripheral.id,peripheral);
setList(Array.from(peripherals.values()));
};
但是我的代码没有通过这个 handlediscoverPeripheral 。它直接移动到下一个函数,即handleStopScan函数..
而且我也无法获得附近蓝牙设备的列表。
任何人都可以在这种情况下帮助我,我想将数据从我的应用程序发送到我通过它与蓝牙连接的设备..
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。