首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在用户访问我的应用程序设置之前添加生物识别提示?

如何在用户访问我的应用程序设置之前添加生物识别提示?
EN

Stack Overflow用户
提问于 2020-08-03 22:34:15
回答 1查看 55关注 0票数 0

我正在使用安卓提供的androidx设置library,在将生物特征添加到我的其中一个设置时遇到了问题。我也在使用androidx生物识别library。android处理生物识别结果的方式是通过回调。这是有问题的,因为我尝试添加生物识别的方式是通过覆盖fun onPreferenceTreeClick(preference: Preference?): Boolean。如果我在这里创建一个生物识别提示符,我无法阻止该选项被点击,因为当我的生物识别提示符被实例化时,android不会等待它完成,而是在其回调中处理它。如何将生物特征添加到我的设置中?(据我所知)没有可覆盖的方法允许这样做,也没有办法用生物识别库做到这一点。

EN

回答 1

Stack Overflow用户

发布于 2020-08-04 00:49:47

我最终解决了这个问题,最初拒绝了新的更改,并保存了该值,以便稍后在用户通过生物识别时使用。如果用户失败,则不需要执行任何操作,因为我最初拒绝了更改。但是,如果用户传递了回调,我就会进行更改。尽管这似乎是SwitchPreference的唯一合乎逻辑的选择,但在执行ListPreference时,这一点并不明显。

在我的特定实现中,我添加了一个onPreferenceChangeListener

代码语言:javascript
运行
复制
findPreference<Preference>(BIOMETRIC_OPTION_KEY)?.setOnPreferenceChangeListener { preference, newValue ->
            if (newValue is String) {
                performBiometricFlow(preference.key, newValue)
            }

            false
        }

performBiometricFlow调用了生物识别对话框library,在回调中,我运行了一个函数,该函数确定正在单击的内容(基于键),并运行适当的函数。在本例中,单击了一个生物识别选项对话框,如果该对话框通过,它将运行以下命令

代码语言:javascript
运行
复制
private fun changeBiometricPreference(newValue: String) {
    findPreference<ListPreference>(BIOMETRIC_OPTION_KEY)?.value = newValue
}

此部分通过查找ListPreference并重新分配它来保存最初应保存的newValue。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63231425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档