0

我想檢測Android移動設備在沒有互聯網連接的情況下的位置。 唯一的選擇是,要使用附近Cell Towers的信息,我想知道TelephonyManager類是否可用於此(假設單元格的長位置在數據庫中可用)?對Android中NetworkManager類提供的信息進行說明

我知道TelephonyManager.getNeighbouringCellInfo()提供了一個NeighbouringCellInfo列表。

我的問題是,這個方法返回多少NeighbouringCellInfo?這個信息可以用來執行三角測量嗎?

如果不能,我可以使用SIM Toolkit來獲取所需的信息並執行三角測量?

請隨時提供任何相關意見,因爲這對我的訴訟程序非常有用。

回答

1

首先,你當然不能做三角測量。三角測量依賴於角度。我認爲你的意思是三角測量。三角測量 - 相反 - 依靠距離。對於基於距離的三角測量,您需要一個具有混凝土座標的數據庫,以及與三個或更多座標(本例中爲單元塔)的距離。但是,如果您查看NeighboringCellInfo的文檔,則會看到您的而不是獲得了距離讀數。你得到一個RSSI。 RSSI和距離之間的連接是而不是線性,並且不太瞭解或非常準確。它可以根據天線方向,天氣條件等而有很大的不同......因此,認爲只要能夠挑選三個單元並使用它們的相對RSSI來折射一個用戶就會最終證明是非常容易出錯的(即,幾乎相當多大部分時間都是錯誤的)。隨着所有這一切,我不相信getNeighboringCellInfo總是可以保證返回三個或更多塔(您可以查看低級代碼here的實施)。因此,我的判斷是,你所能做的最好的事情是找出哪座塔的實力最高,並說你有點「接近」,我真的懷疑你可以做得更好。

相反,一個更好的選擇,這一點我敢肯定,你已經想到了,就是利用GPS,但我猜你有一個理由不希望這樣做。

我不知道,如果你也知道,但TelephonyManager有這將使你的位置更新,以及實現:here.

(順便說一句,我做了一個類似的三邊項目一次,並在我的經驗但高度精確的接收器和測量,它只是不工作,我也有原始RSSI數據,甚至在短期至中期範圍在數據中的錯誤了似地不可接受的。)

+0

您好,感謝很多您的答覆。真的很感激它。 然而,仍然不清楚的一件事是TelephonyManager提供的位置更新,它是否三角化或僅返回設備連接到的手機信號塔的位置? – Deva