2016-10-30 52 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

相关问题