【发布时间】:2020-09-12 06:33:27
【问题描述】:
首先:这是一个合乎逻辑的问题,而不是特定于代码的问题。
我正在尝试创建一个类似于iOS AirDrop 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 手机不是“信标”..
所以我的问题是:是否有允许广播其他人可以看到的消息(我的自定义用户名)的技术/库?理想情况下,我想在它们之间进行通信,例如交换令牌,但这不是必需的。
如果有任何帮助或指出正确的方向,我将不胜感激,谢谢!
【问题讨论】:
-
你不能广播一个值。您需要实际连接到外围设备并从特征中读取值
-
@Paulw11 实际上它确实有效。有关详细信息,请参阅我的答案。 (我认为在底层 API 仍然会搜索对等点并连接到这些点,但它确实会广播配对代码。)
标签: android ios react-native bluetooth bluetooth-lowenergy