Google+ Войти для Android - Коды результатов действий разрешений Google
Я обнаружил небольшую проблему при работе с Google+ Sign для Android и после поиска в Интернете (и, конечно, ТАК), я задаю свой вопрос вслух, чтобы узнать, заметил ли кто-либо то же самое.
Я включаю серверный доступ к API для моего приложения, как описаноВот. Позвольте мне быть подробно о том, что происходит. Возьми этот фрагмент:
Bundle appActivities = new Bundle();
appActivities.putString(GoogleAuthUtil.KEY_REQUEST_VISIBLE_ACTIVITIES,
"<APP-ACTIVITY1> <APP-ACTIVITY2>");
String scopes = "oauth2:server:client_id:<SERVER-CLIENT-ID>:api_scope:<SCOPE1> <SCOPE2>";
String code = null;
try {
code = GoogleAuthUtil.getToken(
this, // Context context
Plus.AccountApi.getAccountName(mGoogleApiClient), // String accountName
scopes, // String scope
appActivities // Bundle bundle
);
} catch (IOException transientEx) {
// network or server error, the call is expected to succeed if you try again later.
// Don't attempt to call again immediately - the request is likely to
// fail, you'll hit quotas or back-off.
...
return;
} catch (UserRecoverableAuthException e) {
// Requesting an authorization code will always throw
// UserRecoverableAuthException on the first call to GoogleAuthUtil.getToken
// because the user must consent to offline access to their data. After
// consent is granted control is returned to your activity in onActivityResult
// and the second call to GoogleAuthUtil.getToken will succeed.
startActivityForResult(e.getIntent(), AUTH_CODE_REQUEST_CODE);
return;
} catch (GoogleAuthException authEx) {
// Failure. The call is not expected to ever succeed so it should not be
// retried.
...
return;
} catch (Exception e) {
throw new RuntimeException(e);
}
УвидетьUserRecoverableAuthException
а это комментарий? Ну, вот о чем я хочу поговорить с тобой. В этом случае, как вы можете видеть, запускается другое действие и начинается поток, в котором вы должны принять разрешения, запрашиваемые приложением. Как вы можете видетьstartActivityForResult
метод используется. Я заметил, чтоActivity.RESULT_OK
возвращается, когда пользователи принимают разрешения, ноActivity.RESULT_CANCELED
возвращается как при возникновении ошибки / сбоя, так и когда пользователь просто отказывается дать разрешение и отменяет поток.
Итак, вот (ДА, НАКОНЕЦ!) Мой вопрос ... Как я могу отличить один случай (ошибка / сбой) от другого (возможный поток пользователя)?