我正在從事地理定位應用,因爲我想使用Gps提供商,因爲它給出的準確位置比網絡提供商。但有時室內的GPS信號沒有達到那麼我想使用網絡提供商。每當Gps信號沒有達到那個時間我想使用網絡提供商。如何在這些提供商之間切換?如何將提供商Gps更改爲網絡以獲取地理位置?
謝謝, 維沙卡。
我正在從事地理定位應用,因爲我想使用Gps提供商,因爲它給出的準確位置比網絡提供商。但有時室內的GPS信號沒有達到那麼我想使用網絡提供商。每當Gps信號沒有達到那個時間我想使用網絡提供商。如何在這些提供商之間切換?如何將提供商Gps更改爲網絡以獲取地理位置?
謝謝, 維沙卡。
如果您有一個可以打開或關閉變量的按鈕,您可以在這樣的提供程序之間切換(對不起,它是僞代碼)。
if (GPSisOff){
LocationProvider locationProvider = LocationManager.NETWORK_PROVIDER;
} else {
LocationProvider locationProvider = LocationManager.GPS_PROVIDER;
}
另外它取決於您是否希望它自動檢測。如果是這種情況,您可能需要檢查當前locationProvider的位置返回(無論是GPS還是網絡),並確定它的準確度並相應切換。
查看樣品http://developer.android.com/guide/topics/location/obtaining-user-location.html。
如果位置提供程序在onStatusChanged方法中暫時不可用,則會通知您的locationListener。
您可以做的另一件事是爲gps和網絡提供商使用相同的LocationListener。因此,您可以同時啓用兩者,而不是僅使用gps或僅使用網絡,以便應用程序的LocationListener將從兩個提供程序(或者只有另一個可用,如果另一個不能提供更新)接收位置更新。