Ich versuche, alle aktiven Geofences bei meiner Aktivität zu löschen. HierLöschen Sie alle aktiven Geofence auf Aktivität schließen
ist der Code, ich verwende:
private PendingIntent getGeofencePendingIntent() {
Intent intent = new Intent(this, GeofenceService.class);
// We use FLAG_UPDATE_CURRENT so that we get the same pending intent back when calling addgeoFences()
return PendingIntent.getService(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(receiver);
//Setup permissions for location.
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
&& ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(
this,
new String[]{
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION
},
LOCATION_PERMISSION_CODE
);
} else {
if (lm != null)
lm.removeUpdates(this);
}
if (allRequestIds.size() != 0) {
LocationServices.GeofencingApi.removeGeofences(
mGoogleApiClient,
allRequestIds
);
allRequestIds.clear();
filterMap.clear();
registeredFences.clear();
mGoogleApiClient.disconnect();
}
}
ich auch versucht:
if (allRequestIds.size() != 0) {
LocationServices.GeofencingApi.removeGeofences(
mGoogleApiClient,
getGeofencePendingIntent()
);
allRequestIds.clear();
filterMap.clear();
registeredFences.clear();
mGoogleApiClient.disconnect();
}
Ich erhalte diese Fehlermeldung:
Unable to destroy activity, GoogleApiClient is not connected yet.
Das gleiche geschieht, wenn ich Mach es bei der onStop() Methode.
Das Endergebnis ist, dass die Geofences, die während der vorherigen Läufe hinzugefügt wurden, beibehalten werden. Ich will das nicht. Was läuft falsch?