2016-10-30 90 views
0

我有一個應用程序,當某個活動開始時,需要用當前地址填寫一個字段。我不確定我是否會更新GPS座標,除非另一個使用GPS的應用程序啓動。Google定位服務的getLastLocation方法在Android應用程序中啓動GPS嗎?

如果我有位置,我可以使用Geocoder獲取地址。我可以通過Google Locations API的getLastLocation獲取位置信息。

如果我下面的教程步驟和onCreate這樣初始化API:

GoogleApiClient.Builder(this).addConnectionCallbacks(this).addOnConnectionFailedListener(this).addApi(LocationServices.API).build(); 

onConnect獲得最後的位置是這樣的:

Location lastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient); 

我得到我的感覺m只能得到最後一個已知的地址,但上面的代碼實際上並沒有啓動手機上的GPS。

我是否需要在onConnected中啓用位置更新,然後第一次獲得更新位置或上述代碼實際啓動GPS?

回答

1

getLastLocation方法不啓動GPS,只是檢索最後一個位置。

此外,您可以檢查位置的日期以檢測它是否太舊。

在舊位置的情況下或想要得到新位置,您需要提出位置請求。

考慮我LocationRequest

private LocationRequest mLocationRequest; 

private void createLocationRequest(){ 
    mLocationRequest = new LocationRequest(); 

    // 0 means here receive location as soon as possible 
    mLocationRequest.setInterval(0); 
    mLocationRequest.setFastestInterval(0); 

    // setNumUpdates(1); stops location requests after receiving 1 location 
    mLocationRequest.setNumUpdates(1); 

    // PRIORITY_HIGH_ACCURACY option uses your GPS 
    mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 
} 

@Override 
public void onLocationChanged(Location location) { 
    // Use new location 
} 
+0

感謝。現在工作完美! – MathiasR

相關問題