2012-04-16 93 views
2

我正在Android中創建一個小應用程序,它指向當前位置。 我已經使用過GPS提供程序,但發現在某些地方我不會使用GPS提供程序獲取數據。使用WiFi獲取位置詳細信息

任何人都可以幫助我得到這個嗎?

+0

可能重複[獲取當前位置使用WiFi?](http://stackoverflow.com/questions/10172136/get-current-location-using-wifi)和[如何使用Wifi接入點估計我的位置?](http: //stackoverflow.co m/questions/3938100/how-to-estimate-my-position-using-wifi-access-point) – assylias 2012-04-16 11:03:50

+0

只需將提供程序從GPS_PROVIDER更改爲NETWORK_PROVIDER即可! – 2012-04-16 11:06:47

回答

3

如果您已連接到WIFI,則只需使用NETWORK PROVIDER進行位置更新即可。 他們將會快速且足夠準確。

一般來說,如果位置更新不是如此頻繁地要求,則同時從GPS和NETWORK一起詢問位置更新。每當您獲得所需準確性的位置更新時,都會從收聽位置更新中取消註冊。

但是,如果需要經常更新位置信息,那麼撥打GPS可能會導致電池使用者 ,因此請小心使用GPS PROVIDER。

GPS更新在空曠的天空下可用。 GPS更新需要時間,需要電池,但更準確。

網絡更新速度更快,消耗電量更少,但相對而言不太準確。 但是,如果我們談論的是WIFI準確度,它將接近50或100,可以滿足許多實時要求。

這一切都取決於您的要求。

-1

要檢查設備通過移動或WiFi連接時,您可以使用此代碼:

ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 

//wifi 
State wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState(); 

然後使用這樣的...

if (wifi == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTING) { 
    //wifi 
} 

更多信息請參見link