Jetpack Credential Manager 不适用于 Samsung S23 Ultra

问题描述 投票:0回答:1

我正在开发一个使用 Jetpack Credential Manager API 的 Kotlin 应用程序

我已经在各种物理设备上成功测试了身份验证,但在我朋友的三星 S23 Ultra 上测试时遇到了奇怪的行为。 启动 getCredential 请求时没有任何反应,没有抛出异常,没有返回结果,并且我在 Logcat 中没有看到任何日志。需要注意的是,相同的代码在运行 Android 14 的其他设备上可以正常运行。

这是我做的测试活动

class MainActivity : ComponentActivity() {
    private lateinit var credentialManager: CredentialManager;
    private val coroutineScope = CoroutineScope(Dispatchers.Main)

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        credentialManager = CredentialManager.create(this.baseContext)
        
        setContent {
            ...
            coroutineScope.launch {
                withContext(Dispatchers.Main) {
                    login("client_id")
                }
            }
        }
        
    }

    suspend fun login(serverClientId: String) {
        val requestBuilder = GetCredentialRequest.Builder()
        requestBuilder.addCredentialOption(
            GetGoogleIdOption.Builder().setFilterByAuthorizedAccounts(false)
                .setAutoSelectEnabled(false).setServerClientId(serverClientId).build()
        )
        requestBuilder.addCredentialOption(GetPasswordOption())
        try {
            val response = credentialManager.getCredential(this, requestBuilder.build())
            val credential = response.credential
        } catch (e: Throwable) {
            print(e.message)
        }
    }
}
android kotlin credential-manager
1个回答
0
投票

在 S23 Ultra 上面临完全相同的问题。有这方面的更新吗?有没有人找到解决方案,或者我们只能在三星设备上使用旧的 GoogleSign API?

© www.soinside.com 2019 - 2024. All rights reserved.