2012-11-26 148 views
0

使用位置API獲取位置與Telephony API的位置有什麼區別?使用位置API或電話API獲取設備位置

以前,我在位置服務未啓用時詢問了有關獲取位置的問題。見:Retrieving GPS coordinates when location services are not enabled

顯然,使用電話API,http://developer.android.com/reference/android/telephony/CellLocation.html這是可能的。這將返回一個我認爲是基站ID的整數?

我正確嗎?有什麼不同?

在此先感謝

回答

1

CellLocation是一個抽象基類,它不提供任何種類的獲取位置方法。相反,您必須使用CdmaCellLocation或GsmCellLocation。

CdmaCellLocation提供了getBaseStationId,這就是你推測所說的返回一個int給基站ID的東西。 CdmaCellLocation還提供了getBaseStationLatitude和getBaseStationLongitude,這應該正是您在CDMA設備上所需的。但是,GsmCellLocation不提供這樣的方法。您需要使用CID和LAC以及openbmap或opencellid等服務將CID/LAC轉換爲經度和緯度。

因此,簡而言之,位置API爲您提供了一個直接莊園的位置。 Telephony API爲您提供有關小區連接的信息(如果存在),並且您必須爲GSM和CDMA提供單獨的實施方案,並且如果設備具有GPS,但沒有電話,則已將用戶搞砸了。另外,我想指出您之前得到的回覆:https://stackoverflow.com/a/13491028/198480

0

位置API將使用GPS,AGPS或GLONASS檢索的位置,但在電話API,因爲該位置是由運營商返回的位置給的是不是作爲一個GPS定位的精確(移動運營商) 。 Telephony api使用三角測量計算位置。

4

從位置API或電話API獲取位置的基本區別在於獲取位置的方法。

位置API根據您的GPS網絡返回位置。您的Android設備請求其與GPS網絡中的衛星的距離,並繪製沿着所描述的球體的邊界的交叉點,而電話服務API根據您的小區ID(您獲得的響應getCellLocation() )。您可能已經知道您的手機幾乎總是連接到最近的手機塔。每個小區塔的確切位置由其運營商所知,並作爲位置區域碼(LAC)內的小區ID分配給塔。您的手機存儲您連接的每個塔樓的小區識別號和LAC,從而粗略瞭解您的位置。

欲瞭解更多信息,你可以訪問this鏈接。