簡體   English   中英

使用藍牙獲取兩個 android 設備之間的距離

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM