Вход в Google, как правильно обрабатывать случай ошибки, когда пользователю требуется снова войти в учетную запись

  • Я работаю над реализацией регистрации Google в своем приложении. Сама регистрация работает правильно, но я запутался, потому что не могу найти способ обработать следующую ошибку.
  • Пользователь сохранил учетную запись Google в своем телефоне. Эта учетная запись появляется во всплывающем окне выбора учетной записи Google и может использоваться для регистрации. Ошибка произойдет, если я изменю пароль учетной записи Google и больше не войду в свой телефон. Теперь, когда я пытаюсь использовать учетную запись Google, я получаю сообщение об ошибке со следующим статусом:

googleSignInStatus=Status{statusCode=неизвестный код состояния: 12501, разрешение=null}

Скриншот всплывающего окна:1

override fun onCreate(savedInstanceState: Bundle?) {    
val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestServerAuthCode(getString(R.string.server_client_id))
            .build()

mGoogleApiClient = GoogleApiClient.Builder(this)
            .enableAutoManage(this, this)
            .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
            .build()

mGoogleApiClient?.registerConnectionFailedListener(this)
} //Code that is used to init sign in client

public override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
    super.onActivityResult(requestCode, resultCode, data)
    if (requestCode == RC_SIGN_IN) {
        val result = Auth.GoogleSignInApi.getSignInResultFromIntent(data)
        Timber.tag("TRY_TO_HANDLE").d(data.extras?.toString())
        Timber.tag("TRY_TO_HANDLE").d(result.status.toString())
        Timber.tag("TRY_TO_HANDLE").d(result.status.statusMessage)
}} //Code that handle result
  //googleSignInStatus=
       Status{statusCode=unknown status code: 12501, resolution=null}
  • Я хочу обработать ошибку и показать экран входа в Google, чтобы пользователь вошел в свою учетную запись и смог использовать ее в моем приложении для регистрации.
  • Я изучал официальную документацию, но ничего не нашел. Я думаю, что это возможно, потому что некоторые приложения, поддерживающие вход через Google, работают таким образом (например, приложение AliExpress).
  • Может ли кто-нибудь объяснить мне, как это реализовать?

person Bohdan Rozov    schedule 09.02.2019    source источник
comment
Добро пожаловать в StackOverFlow   -  person engmms    schedule 10.02.2019


Ответы (1)


Вы пытались удалить учетную запись и снова попробовать зарегистрироваться с помощью.

mClient.clearDefaultAccountAndReconnect()
person vikas kumar    schedule 09.02.2019