[英]Getting distance between two android devices using bluetooth
我在 SO 上發現了很多類似的問題。 但他們中的大多數都沒有工作或過時。
我正在嘗試構建一個 android 應用程序,該應用程序使用藍牙掃描附近的設備,我希望該應用程序在手機接近 2 米時提醒用戶。
所以我正在嘗試使用在 SO 上找到的以下方法來獲取距離。
protected double calculateDistance(float txPower, double rssi) {
if (rssi == 0) {
return -1.0; // if we cannot determine distance, return -1.
}
double ratio = rssi * 1.0 / txPower;
if (ratio < 1.0) {
return Math.pow(ratio, 10);
} else {
double accuracy = (0.89976) * Math.pow(ratio, 7.7095) + 0.111;
return accuracy;
}
}
該方法返回一個奇怪的小數字,我認為它甚至不是距離,因為即使手機位於同一位置,它也會不斷變化。
關於如何獲得准確距離的任何想法?
對於那些正在尋找設備之間距離的人。 經過大量的研究和搜索,我發現獲得准確或准確的距離並不是一件容易實現的事情。 Android 和 Apple 仍在研究類似的東西。
因為我急於尋求解決方案,所以我用作解決方法的是一種叫做Nearby Messages API的東西。
它是一個發布-訂閱 API,可用於 Android 和 iOS。 它使用特定的MessageListener
捕獲附近訂閱特定Message
的設備。 您可以向偵聽器添加一些Strategy
,以了解距離是否真的接近EARSHOT
。
這正是我所需要的,所以這對我有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.