我正在为我的应用添加指纹认证,在网上找到了很多好的建议,并成功地在我的应用中实现了其中一个样本。https:/www.techotopia.comindex.phpAn_Android_Fingerprint_Authentication_Tutorial
然而,所有这些例子的MainActivity都以实例化一个帮助类结束,其中定义了各自的回调(onAuthenticationError、onAuthenticationHelp、onAuthenticationSucessfed)函数。
// Main activity
@Override
protected void onCreate(Bundle savedInstanceState) {
…
FingerprintHandler helper = new FingerprintHandler(this);
helper.startAuth(fingerprintManager, cryptoObject);
}
…
// Helper class
public class FingerprintHandler extends FingerprintManager.AuthenticationCallback {
…
@Override
public void onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result) {
Toast.makeText(appContext, "Authentication succeeded.", Toast.LENGTH_LONG).show();
}
}
现在我的应用也是如此。然而,有一点很重要,我没有在这里或在我所访问的博客文章中找到。有什么推荐的方法可以在用户成功认证后回到我的MainActivity代码中呢?处理诸如关闭指纹UI和启动实际应用UI与相关活动的事情。
我可以看到各种不同的方法来实现这一点,例如
但是在我重构我的代码和尝试之前,我想我应该在这里寻求一些建议。
好吧,我找到了一个方法,就是简单地创建一个全局MainActivity变量,然后从onAuthenticationSucceeded中调用MainActivity.InitApplication。
但是,与此同时,我还研究了API级别28的BiometricPrompt,这要简单得多.大刀阔斧地升级到Androidx和BiometricPrompt,最后得到了一个更干净的方法。