Реагируйте на родную трансляцию и обнаруживайте близлежащие устройства - PullRequest
1 голос
/ 25 мая 2020

Во-первых: это скорее логичный вопрос, чем вопрос c с указанием кода.

Я пытаюсь создать представление, подобное iOS представление AirDrop где пользователи могут видеть других пользователей. Это означает, что каждый пользователь должен транслировать / рекламировать свое собственное имя пользователя, которое могут видеть все другие находящиеся поблизости пользователи, просматривающие область.

Я пробовал использовать react-native-ble-plx, так как я прочитал на Форум разработчиков Apple , что iPhone может выступать в качестве периферийных устройств BLE (Bluetooth с низким энергопотреблением). (Кроме того, я читал, что новые устройства 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?

Я также изучал маяки (в частности, response-native-beacons-manager ), но я не уверен, что это это то, что я хочу, поскольку телефон Android / iOS не является «маяком» ..

Итак, мой вопрос: существуют ли технологии / библиотеки, которые позволяют транслировать сообщение (мое пользовательское имя пользователя), которое могут видеть? В идеале я хочу общаться между ними, например обмениваться токенами, но это не является обязательным требованием.

Буду признателен за любую помощь или указания в правильном направлении, спасибо!

1 Ответ

0 голосов
/ 03 июня 2020

Мне удалось заставить его работать после очень долгих ночей отладки.

Это возможно с помощью API Google Nearby Messages и настройкой для использования только .BLE. собственный модуль с открытым исходным кодом для этого здесь: https://github.com/mrousavy/react-native-google-nearby-messages

...