Я могу успешно зарегистрировать геозону, но только при включенном GPS. Когда GPS отключен, я получаю ошибку GEOFENCE_NOT_AVAILABLE (1000). Так как не критично прописывать его "только сейчас". Я не хочу беспокоить пользователя всплывающим окном (сначала включить GPS).
Есть ли способ зарегистрировать обратный вызов, чтобы получать уведомления, когда пользователь наконец включит GPS? Или любой другой способ, как выполнить код, когда местоположение доступно для повторной регистрации геозоны.
ПРИМЕЧАНИЕ. Мне нужно решение для GoogleApiClient (Сервисы Google Play > 6.5), но такая же проблема существует и для LocationClient (‹6.5).
Спасибо.
mGoogleApiClient = new GoogleApiClient.Builder(mContext)
.addApi(LocationServices.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
mGoogleApiClient.connect();
...
@Override
public void onConnected(Bundle bundle) {
PendingResult<Status> result = LocationServices.GeofencingApi.addGeofences(mGoogleApiClient, geofencesToAdd, mGeofencePendingIntent);
result.setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
if (status.isSuccess()) {
// Successfully registered
} else if (status.hasResolution()) {
// Google has resolution
} else {
// Error
// status.getStatusCode() == LocationStatusCodes.GEOFENCE_NOT_AVAILABLE; !!
}
}
});
}