android - React Native 广播并发现附近的设备

标签 android ios react-native bluetooth bluetooth-lowenergy

首先:这更像是一个逻辑问题,而不是特定于代码的问题。

我正在尝试创建类似于 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/

相关文章:

javascript - 运行 react-native run-android 时任务 ':app:transformClassesWithDexForDebug' 执行失败

android - 请通过更新 google-services 插件或 updati 的版本来修复版本冲突

android - 更改 MotionLayout 中嵌套布局的尺寸

android - MVP 演示器中的上下文相关问题

javascript - 使用 React Native 的 Firebase 查询未显示在我的屏幕上(但显示在 console.log 上)

ios - 基于环境 fork jsCodeLocation的最佳实践

android - FirebaseMessagingService 无法覆盖 zzb 中的 zzae(Intent)。较弱的引用错误

ios - 使用GKSession进行点对点时如何获得精确的时钟同步?

ios - 使用初始化程序与计算属性解析数据的优点/缺点

ios - Twilio iOS 客户端 - 在后台保持活跃