Очень сложно точно определить расстояние по Bluetooth RSSI, измеренное между двумя телефонами, потому что существует огромный разброс в способах измерения сигналами Bluetooth разных моделей телефонов. Посмотрите этот график, созданный людьми из Open Trace за усилия в Сингапуре:
Эти изменения соответствуют моей работе в этой области для проекта с открытым исходным кодом Android Beacon Library. Фрагментация Android устройств сделала невозможным идти в ногу со всеми изменениями в силе отклика сигнала.
Один момент, который команда Open Trace не рассмотрела в своей работе, заключается в том, что существует ряд различные каналы Bluetooth и RSSI сильно зависит от конкретного телефона в зависимости от того, какой канал используется . Мобильные телефоны не показывают, на каком канале было радио, когда проводилось измерение. Разница в канале, вероятно, объясняет большую часть «высоты» синих полос на графике.
К сожалению, невозможно узнать, приближается ли устройство или нет, читая обновления RSSI. Изменения могут быть вызваны естественным изменением, движением или изменением препятствий. Я не верю, что самокалибровка в приложении отслеживания контактов является жизнеспособной.
Это не означает, что RSSI бесполезен для оценки расстояния , но это означает, что запас ошибка очень высока в том, что вы можете измерить. Если вы вообще видите устройство, очень вероятно, что оно находится в пределах 50 метров. И если вы видите, что RSSI сильнее -70 дБм, есть вероятность, что вы находитесь в пределах 2 метров. Но всегда будут ложные срабатывания и ложные отрицания.