使用 Jetpack Compose 的生物识别提示

BiometricPrompt with Jetpack Compose

BiometricPrompt 在其构造函数中需要 Fragment 或 FragmentActivity。我无法从可组合屏幕找到如何使用 BiometricPrompt,而不是在文档中,也不是在任何教程中。这里有没有人处理过同样的问题?或者是否有任何其他方法可以在完全 Compose 构建的应用程序中使用生物识别身份验证?

FragmentActivity 子类化您的 MainActivity,然后在可组合中获取您的上下文:

val context = LocalContext.current as FragmentActivity

查看 github 上的一些示例:https://github.com/search?l=kotlin&q=BiometricPrompt%20composable&type=Code

好吧,最后它很简单,但我花了好几个小时,所以这里是所有遇到这个问题的人的答案。

确保您的 MainActivity 继承自 FragmentActivity()。然后你就可以将 LocalContext.current 转换为 FragmentActivity.

val context = LocalContext.current as FragmentActivity
val biometricPrompt = BiometricPrompt(
    context,
    authenticationCallback
)

对于无法更改其 activity 基础 class 的人,可以 issuetracker.google.com/issues/178855209 请求 biometric-compose 神器。不幸的是,从版本 1.2.0-alpha04 开始,还没有针对它进行任何工作。