내 지오 펜스가 잘 작동, 그렇지 않으면 다른 모든 것들 작동을 멈 춥니 변경되었습니다. 여기 내 지오 펜스를 다시 등록하려고하는 방송 수신기의 코드입니다.공급자에서 Android 지오 펜스를 변경하는 방법이 변경 되었습니까? 공급자에
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
public class LocationProviderChangedReceiver extends BroadcastReceiver implements GoogleApiClient.ConnectionCallbacks,GoogleApiClient.OnConnectionFailedListener,ResultCallback<Status> {
int i=0;
protected GoogleApiClient mGoogleApiClient;
Geofence geofence;
Context context;
@Override
public void onReceive(Context context, Intent intent) {
i=i++;
this.context=context;
Toast.makeText(context,"Provider changed ,Geofencing restarted.",Toast.LENGTH_LONG).show();
Log.wtf("senpai","oooooo"+i);
LatLng latLng=new LatLng(28.5795613,77.3136267);
geofence=new Geofence.Builder()
.setRequestId("x").setCircularRegion(latLng.latitude,latLng.longitude, Constants.GEOFENCE_RADIUS_IN_METERS)
.setExpirationDuration(Constants.GEOFENCE_EXPIRATION_IN_MILLISECONDS)
.setLoiteringDelay(500)
.setTransitionTypes(Geofence.GEOFENCE_TRANSITION_ENTER | Geofence.GEOFENCE_TRANSITION_EXIT|Geofence.GEOFENCE_TRANSITION_DWELL)
.build();
mGoogleApiClient = new GoogleApiClient.Builder(context)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.build();
}
@Override
public void onConnected(@Nullable Bundle bundle) {
try {
LocationServices.GeofencingApi.removeGeofences(mGoogleApiClient, getGeofencePendingIntent()).setResultCallback(this); // Result processed in onResult().
LocationServices.GeofencingApi.addGeofences(mGoogleApiClient, getGeofencingRequest(), getGeofencePendingIntent()).setResultCallback(this); // Result processed in onResult().
} catch (SecurityException securityException) {
// Catch exception generated if the app does not use ACCESS_FINE_LOCATION permission.
}
}
@Override
public void onConnectionSuspended(int i) {
}
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
}
@Override
public void onResult(@NonNull Status status) {
}
private PendingIntent getGeofencePendingIntent() {
Intent intent = new Intent("ACTION_RECEIVE_GEOFENCE");
// We use FLAG_UPDATE_CURRENT so that we get the same pending intent back when calling addgeoFences()
return PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
private GeofencingRequest getGeofencingRequest() {
GeofencingRequest.Builder builder = new GeofencingRequest.Builder();
builder.setInitialTrigger(GeofencingRequest.INITIAL_TRIGGER_ENTER);
builder.addGeofence(geofence);
return builder.build();
}
}
내 활동에서 나는 똑같이했습니다. 지오 펜싱을 다시 시작하려면 어떻게해야합니까? 나의 Geofencer 예를
다음일부 조각입니다 작동 :