2

В приложении im writing я должен использовать GPS 6.1 (для вашей информации). Я добавляю гео заборы с помощью этого кода:LocationServices.GeofencingApi не может удалить геообъекты

LocationServices.GeofencingApi.addGeofences(mGoogleApiClient, normGeofences, pendingIntent); 

и положить каждый RequestID в общих настройках, как это:

set.add(geofence.getRequestId()); 

сохранение набора:

sp.edit().putStringSet(ID_KEY, set).commit(); 

чем приложение закрывается , и в какой-то момент времени, когда пользователь нажимает на уведомление, вынуждающая гео ограждения:

  1. подключаются к GoogleApiClient:

    mGoogleApiClient = new GoogleApiClient.Builder(this) 
            .addApi(LocationServices.API) 
            .addConnectionCallbacks(this) 
            .addOnConnectionFailedListener(this) 
            .build(); 
    
    mGoogleApiClient.connect(); 
    
  2. после подключения, удаление геозоны:

    public void onConnected(Bundle bundle) { 
    
        Log.d(TAG, "Connected"); 
        insertGeoIds(); 
        // the method insertgeofences put the request ids in the List geoList 
        if (mGeoList.size() > 0) 
         LocationServices.GeofencingApi.removeGeofences(mGoogleApiClient, mGeoList); 
    } 
    
    • Я проверил, и идентификаторы запроса загружаются правильно.

Так, что не работает, то геозон продолжают быть запущен.

ответ

0
  1. Это прекрасно работает для меня, поэтому вам нужно делать нехорошее - напишите больше кода.
  2. Можете ли вы обновить GPS до последнего?
  3. Добавить обратный вызов, который должен быть вызван при снятии имеет успех/не удался, так как:

PendingResult<Status> pendingResult = LocationServices.GeofencingApi.removeGeofences(mGoogleApiClient, mCurrentGeofenceIds); 
 
pendingResult.setResultCallback(new ResultCallback<Status>() { 
 
    @Override 
 
    public void onResult(Status status) { 
 
     onRemoveGeofencesByRequestIdsResult(status.getStatusCode()); 
 
    } 
 
});

 Смежные вопросы

  • Нет связанных вопросов^_^