嗨,我正在開發小型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