如果我們想要在Android中獲得一個GPS定位,我們實際上使用已知函數requestSingleUpdate()和LocationManager.GPS_PROVIDER,對吧?requestSingleUpdate(...)不會自動獲取GPS位置
現在我正在使用我的getLocation()函數開啓GPS功能,但設備不會自動建立連接,除非我手動關閉GPS,然後再打開它。 requestSingleUpdate()爲網絡供應商完美地工作,我只是不知道爲什麼這不適用於GPS修復。
下面是我的源代碼的一部分:
的getLocation()被另一個對象具有定時運行,每2分鐘。在的getLocation()如果GPS和網絡上,它試圖獲取GPS在第一分鐘內修復,然後在沒有可用GPS定位的情況下獲取網絡位置。
public boolean getLocation() {
// DEBUG
Log.d("GPS Connection", "Entering getLocation()");
gpsEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
networkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if(!gpsEnabled && !networkEnabled)
return false;
if(gpsEnabled && networkEnabled) {
// DEBUG
Log.d("GPS Connection", "Request GPS Data");
locationManager.requestSingleUpdate(LocationManager.GPS_PROVIDER, gpsLocationListener, Looper.getMainLooper());
gpsGetLocationTimeout = new Timer();
gpsGetLocationTimeout.schedule(new GetNetworkLocation(), GPS_MAX_CONNECTION_TIME_MS);
}
...
無論我是室內還是室外,我期望從使用requestSingleUpdate(..)與GPS的期望是,它應該嘗試獲取應該在通知欄中右邊閃爍的圓圈圖標標記的位置。在我看來,它甚至不會執行任何gps動作。 –