У меня есть модульное устройство (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) извините за мой английский. Спасибо, что прочитали.