我有一个使用生物识别(指纹API(的应用程序,让用户登录。现在,此应用程序无法覆盖没有Marsh Mallow设备的用户,而是在下面。
当我使用 Cipher(API 级别 1(注释一行时,构建可以在所有设备中运行,但是由于未注释此行,我只能在棉花糖设备中运行它。
我不想要这个解决方案:https://developer.samsung.com/release-note/view.do?v=R000000009
我使用了支票:
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
// Initialize the Login Activity that has FingerPrint API
} else {
// Initialize the second Login Activity that does not have FingerPrint API
}
这是因为由于某些预读或加载机制,DVM 检测到此类在某些方法中具有指纹 API 访问权限。
我说的对吗?,还是有其他方法可以允许登录Pre Marsh Mallow用户?
我通过将指纹API相关方法,变量放在一个名为FingerPrintUtil的单独类中来解决此问题。现在我可以全局声明此类,但只有在操作系统版本大于棒棒糖时才初始化它。
private FingerPrintUtil fingerprintUtil;
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
if(fingerprintUtil==null){
fingerprintUtil = new FingerPrintUtil();
}
fingerprintUtil.init();
} else {
// TODO:change the Ui of the Login Activity to login using EMail/Social login only
}
这样,我可以防止验证或找不到类异常。允许 APK 使用较低版本的安卓操作系统的设备。