Я получаю следующую ошибку, когда мобильный телефон не подключен к Интернету при попытке создать клиент Google API для доступа к подходящему API: connection failed. Cause: ConnectionResult{statusCode=NETWORK_ERROR, resolution=null, message=null}
. Я пробовал два способа подключения к Google Fit API:
СПОСОБ 1. Этот метод подключается к Fit API после входа в систему. Этот метод не работает при отсутствии Интернета. Я полагаю, что для процедуры входа в систему необходим Интернет.
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestScopes(new Scope(Scopes.FITNESS_ACTIVITY_READ_WRITE), new Scope(Scopes.FITNESS_LOCATION_READ))
.build();
return new GoogleApiClient.Builder(activity)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.addConnectionCallbacks(connectionCallbacks)
.addOnConnectionFailedListener(failedListener)
.addApi(Fitness.HISTORY_API)
.addApi(Fitness.SESSIONS_API)
.addApi(Fitness.RECORDING_API)
.addApi(Fitness.SENSORS_API)
.enableAutoManage(this, 0, this)
.build();
МЕТОД 2. Поэтому я попытался удалить функцию входа в систему, потому что я чувствовал, что после того, как пользователь вошел в систему и авторизовал API-интерфейс для сбора данных, вход в систему не будет необходим.
googleApiClient = new GoogleApiClient.Builder(this)
.addApi(Fitness.HISTORY_API)
.addApi(Fitness.SESSIONS_API)
.addApi(Fitness.RECORDING_API)
.addApi(Fitness.SENSORS_API)
.addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ_WRITE))
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(failedListener)
.build();
Но я получаю эту ошибку в прослушивателе сбоя соединения ConnectionResult{statusCode=SIGN_IN_FAILED, resolution=null, message=null}
.
Как я могу обеспечить доступ к fitApi без подключения к Интернету?