2013-02-01 60 views
2

我寫了一段代碼,以便了解我的客戶(出租車司機)在我的出租車預訂應用程序上爲他的設備啓用位置服務時會遇到的情況。我在同一個監聽器上啓用了使用網絡和GPS提供商的位置服務。使用GPS和網絡提供商在Android上定位服務的體驗

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 
    // God.KM20TIME, God.KM20DISTANCE, (LocationListener) updates); 

lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, God.KM20TIME, 
      God.KM20DISTANCE, (LocationListener) updates); 

我的電池耗盡比平時快得多。我的手機也升溫超過正常。但我期望的一致性非常低。我決定不使用GPS,只有網絡提供商。我正在建立一個出租車預訂應用程序,所以我需要知道駕駛室的位置。即使我知道駕駛室在大約15分鐘後(約300米)的位置,我應該會很好。所以我想我決定不使用這兩種提供程序過度設計這一邏輯是正確的。我想知道有沒有人可以在這裏與不同的經歷聯繫起來?我錯過了什麼嗎?

+2

這是很好閱讀http://blog.shinetech.com/2011/10/14/a-good-look-at-android-location-data/ – Zyoo

+0

是的,很好的閱讀,upvote爲你..謝謝 – Siddharth

回答

1

根據我的經驗,網絡提供商的質量可能會有所不同。

網絡提供商使用WiFi和手機信號塔信息的組合來提供位置信息。

如果你碰巧接近一個Wifi網絡,這在城市化地區很普遍,但不在城市之外,你通常會得到非常好的準確性。

但是,在Wifi的範圍之外,您處於手機信號塔的擺佈之中。在這裏,精確度取決於細胞塔的質量和特徵,以及可用於對您的位置進行三角測量的細胞塔的數量。

在這些情況下,質量可能會有所不同,不管是在兩個位置之間,還取決於您使用哪個載波,它們的信號塔之間的距離,以及它們具有的信元塔的生成和生成。較新的版本具有更多關於位置的功能,例如可能會自行提供。

我的應用程序運行在瑞典,在我國的一些地區,運營商可能在非常大的區域內只有一個塔。在這些情況下,所有經緯度修正都直接落在塔上,精度甚至達到20,000至30.000米。

基本上,我的觀點是,當使用網絡提供商時,如果你不在Wifi附近,我會非常滿意300米的精度。

關於電池/熱量 - 根據您的要求,您可以使用時間/距離參數進行大量工作,以獲得「足夠好」的更新頻率,而不會對手機造成太大的損失。

+0

不幸的是,隨着手機數量的增加,很難想出時間/距離的組合。 – Siddharth

+0

是的,我知道,對於Android來說非常困難。電池使用壽命中的成本,以啓動位置管理器,獲得修復,然後關閉,例如,在很大程度上取決於操作系統版本和實施細節。 – Mathias

相關問題