首先:这更像是一个逻辑问题,而不是特定于代码的问题。
我正在尝试创建类似于 iOS AirDrop view 的 View 用户可以看到其他用户的地方。这意味着,每个用户都需要广播/广告他们的自定义用户名,扫描该区域的所有其他附近用户都可以看到。
我试过使用 react-native-ble-plx
,因为我读了on the Apple developer forum iPhone 可以充当 BLE(低功耗蓝牙)外围设备。 (此外,我读到较新的 Android 设备也支持此功能)
我尝试了以下方法:
import ble, { BleManager, Characteristic } from 'react-native-ble-plx';
// ...
const bleManager = new BleManager();
bleManager.startDeviceScan(null, null, async (e, d) => {
if (e) console.log(`BT Error: ${JSON.stringify(e)}`);
if (d && d.id && d.isConnectable) {
console.log(`Connecting to: ${d.id} ('${d.name}')...`);
const device = await d.connect();
const services = await device.services();
console.log('services: ', services.join(', '));
const characteristic = await device.writeCharacteristicWithResponseForService(BLE_SERVICE_UUID, BLE_SERVICE_UUID, '123');
console.log(`Characteristics: ${JSON.stringify(characteristic)}`);
}
});
但是我还没有找到一种方法来广播其他人可以读取的值,BLE甚至可以吗?
我还研究了信标(特别是 react-native-beacons-manager ),但我不确定这是否是我想要的,因为 Android/iOS 手机不是“信标”。
所以我的问题是:是否有允许广播其他人可以看到的消息(我的自定义用户名)的技术/库?理想情况下,我想在它们之间进行通信,例如交换 token ,但这不是必需的。
我将不胜感激任何帮助或指出正确的方向,谢谢!
最佳答案
经过漫长的调试之夜,我设法让它工作。
可以使用 Google Nearby Messages API,并将其设置为仅使用 .BLE。
我在这里为此创建了一个开源的 react native 模块:https://github.com/mrousavy/react-native-google-nearby-messages
关于android - React Native 广播并发现附近的设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62005490/