Как узнать расстояние до каждого устройства от Bluetooth? - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть модульное устройство (Galaxy S2, API 16), и это устройство используется в качестве серверного модуля.

и мне нужно расстояние между устройством сервера и клиентским устройством.

TRY 1. Я пытался использовать значение RSSI, чтобы получить расстояние. (используйте BroadCastReceiver, android.bluetooth.device.action.found и EXTRA_RSSI)

, но он работает только для непарных устройств, и нужно всегда разрешать режим поиска Bluetooth.

Я думаю, что моему клиенту не нравится, что я не могу это использовать.

TRY 2. Я пытался использовать BluetoothGattServer - readRemoteRSSI ().

, но для сервера gatt требуется API 18, мой серверный модуль - 16. Я не смог его использовать.

TRY 3. Я подключил сервер и клиент (классический Bluetooth) для передачи данных.

Я думаю, что некоторый пакет данных будет потерян на расстоянии. (и я догадался, потеря данных = расстояние)

но RFCOMM был идеальным. данные полностью получают и отправляют в диапазоне Bluetooth.

Я думаю, что причина в RFCOMM похожа на TCP PROTOCOL. (только в моем предположении)

и затем я попытался использовать протокол L2CAP. (причина похожа на UDP. и я догадался, что это приведет к потере пакета.)

но android не предоставляет протокол L2CAP.

что я могу сделать для получения расстояния?

p.s) извините за мой английский. Спасибо, что прочитали.

1 Ответ

1 голос
/ 17 апреля 2019

Bluetooth не идеальная беспроводная технология для определения расстояния.В версии 5.1 были представлены функции «Угол прихода» (AoA) и «Угол вылета» (AoD), чтобы улучшить возможности определения местоположения, но любая версия до этого (включая 4.0, которую версия Bluetooth для Galaxy S2) даст вам только приблизительно (рядом или далеко), и это относительно неточно.Пожалуйста, смотрите похожие вопросы / ответы здесь: -

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...