Код: Выделить всё
lifecycleScope.launch {
val options = GetGoogleIdOption.Builder()
.setFilterByAuthorizedAccounts(false)
.setServerClientId(SERVER_CLIENT_ID)
.setAutoSelectEnabled(false)
.build()
val request = GetCredentialRequest.Builder().addCredentialOption(options).build()
val response = CredentialManager.create(requireContext())
.getCredential(requireContext(),request)
if(response.credential is CustomCredential && response.credential.type == GoogleIdTokenCredential.TYPE_GOOGLE_ID_TOKEN_CREDENTIAL) {
val googleCredential = GoogleIdTokenCredential.createFrom(response.credential.data)
Log.d(TAG, "onCreate: Signed In as: ${googleCredential.id}")
// continue with signed in...
}
}
Сценарий 1:< /strong> На моем устройстве выполнен вход в несколько учетных записей Google с разными идентификаторами Gmail. Когда я отключаю запрос на вход даже для одной учетной записи в настройках учетной записи устройства, как показано ниже:
Настройки > Google >
Управление учетной записью Google >Ваши подключения к
сторонним приложениям и службам >
Настройки >
Запросы на вход в учетную запись Google == Выкл./Отключено
.. приложение продолжает аварийно завершать работу со следующим исключением:
Код: Выделить всё
androidx.credentials.exceptions.NoCredentialException: During begin sign in, failure response from one tap: 16: User disabled the feature.
- Изменение setFilterByAuthorizedAccounts() на true или false в этом сценарии сбой приложения не происходит.
Очистка хранилища сервисов Google Play с помощью кода набора *#*#66382723#*#* также не влияет на это.
Сценарий 2:[/b] С тем же кодом, когда Я сохраняю setFilterByAuthorizedAccounts(false) и вхожу в систему с одним идентификатором Gmail за раз, а в следующий раз вхожу в систему с другим идентификатором Gmail, т. е. когда на устройстве существуют две учетные записи, с помощью которых можно подписать мое приложение: в, тогда, когда я меняю конфигурацию на автоматический/тихий вход, изменяя setAutoSelectEnabled(false)
на setAutoSelectEnabled(true), диалоговое окно входа скрывает другие идентификаторы Gmail, с которыми я не работал Я еще не вошел в систему и просит выбрать один из двух, с помощью которых я ранее вошел в систему (что ожидается, тихий вход сейчас не будет работать в соответствии с официальными документами, но). Теперь, после выбора входа в систему с любым из этих идентификаторов Gmail, когда я выхожу из системы, вызываяclearCredentialState(), и пытаюсь войти в систему снова в следующий раз, он снова предлагает выбрать один из тех же идентификаторов Gmail.
(И чтобы отключить/отменить идентификатор Gmail, который будет использоваться для автоматического входа в моем приложении, когда я вручную удаляю свое приложение из подключенных сторонних приложений из Google настройки аккаунта, все заканчивается меня в Сценарии 1.)
Любая помощь по отключению/отмене использования идентификатора Gmail для автоматического входа в моем приложении это ценится.
Подробнее здесь: https://stackoverflow.com/questions/782 ... -sign-in-f
Мобильная версия