嗨,我正在开发小型Android应用程序,我尝试使用融合位置更新来获取位置更新。我试图用以下方式:无法停止使用融合位置API的位置更新
private void processStartLocation() {
mGoogleApiClient.connect();
}
@Override
public void onConnected(Bundle bundle) {
updateBooleanSharedPreference(this, "isLocationUpdatesOn", true);
LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, locationPendingIntent);
mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
if (mLastLocation != null) {
lat = String.valueOf(mLastLocation.getLatitude());
lon = String.valueOf(mLastLocation.getLongitude());
time = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss.SSS").format(new Date(mLastLocation.getTime()));
updateUI();
}
}
private void processStopLocation() {
LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, locationPendingIntent);
}
所以一切工作正常。我能够收到我的更新。但是,当我尝试停止更新时,我得到以下问题:
java.lang.IllegalStateException: GoogleApiClient is not connected yet.
at com.google.android.gms.internal.zzlh.zzb(Unknown Source)
at com.google.android.gms.internal.zzli.zzb(Unknown Source)
at com.google.android.gms.location.internal.zzd.removeLocationUpdates(Unknown Source)
我做错了什么。需要一些帮助。谢谢。
您何时/在哪里调用'processStopLocation()'? – ishmaelMakitla
我试着先在onConnect里面进行更新,然后在一段时间后我调用了processStopLocation。 – nilkash
您是否至少在尝试取消更新之前获取位置更新?你在你的代码中实现了'onLocationChanged'回调,并且这是你获取更新的地方吗? – ishmaelMakitla