2012-03-21 83 views
-1

我需要估算android應用中路由器的方向和距離。例如,我可以知道我在我家的哪個房間。android檢測距離路由器的距離

有什麼想法?

+0

我不認爲他們的任何可能性實現這一目標。 – 2012-03-21 10:31:28

+0

這是不可能的,除非你在每個房間安裝路由器 – 2012-03-21 10:32:01

+0

這是不可能的;您的Android設備和路由器都不包含實施VOR/DME所需的硬件。 – mah 2012-03-21 10:32:29

回答

0

可能能夠估計距離,但它不會是可靠的 - 要做的事情是在你的建築物周圍漫遊,注意每個點的功率水平。然後,您可以根據當前功率水平計算出可能的位置。不過,你的距離不會得到單一的值,因爲信號會受到牆壁和其他障礙物的影響。

自動化任何這些都留給讀者作爲練習:)。

+0

如果我在大廳裏試過,沒有牆壁怎麼辦? – 2012-03-21 12:56:24

+0

試試看看:)。由於反思,仍有可能出現異常讀數。 – 2012-03-21 13:37:44

1

如果你去你家的每個房間,並對信號強度/速率等進行平均測量,基本上在每個房間和房間的各個部分儘可能多地參考以供參考,你可以做一個合理的估計。請注意,即使在單個房間的不同部分,所有這些信息也會有很大差異,但您最終可能會得到一個讀數,其中顯示可能性您在任何特定的房間中,基於可能的數量這個數據的組合出現在那個房間的不同部分。

對於一個相當不準確的結果來說,這是相當多的工作,但如果這就是你所追求的,那麼作爲一個開發項目會很有趣。原則是你需要參考信息並建立一個數據庫,以不同的概率徵求意見。

+0

謝謝。我會先在大廳裏試一下,沒有牆。 方向怎麼樣?任何想法?我可以估計手機從哪個方向獲得信號嗎? – 2012-03-21 12:55:26

+0

阿里,不是沒有超過一個無線電接收器。 – deed02392 2012-03-21 12:58:57

0

不幸的是,我不認爲有一種方法可以找到信號的方向,但有一個數學公式來計算距離。只是爲了讓你知道,如果Android設備和路由器之間沒有任何物體(如20釐米的分歧),結果是相當可靠的,但即使你在路由器和設備之間,結果也不像真實距離10米。

這是公式

public double getDistance(){ 
    double exp = (27.55 - (20 * Math.log10(freqInMHz)) - signalLevelInDb)/20.0; 
    double res = Math.pow(10, exp); 
    return res; 
}