假设我有一个使用指纹对用户进行身份验证的应用程序。在 Android 5 上,我仅将 Samsung Spas 库用于三星设备。随着 Android M 的发布,我添加了对许多设备的支持。首先,我检查我是否是 Android M,然后检查是否有管理器实例、是否有硬件以及是否注册了指纹:
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
FingerprintManager manager = (FingerprintManager) context.getSystemService(Context.FINGERPRINT_SERVICE);
if (manager != null) {
logger.info("Android native fingerprint manager exists");
if (manager.isHardwareDetected()) {
logger.info("Android native fingerprint manager detected hardware");
if (manager.hasEnrolledFingerprints()) {
logger.info("Android native fingerprint manager has enrolled fingerprints");
}
}
return new AndroidFingerprintHelper(context);
}
}
如果我在这里失败,我会回退检查 Android 是否是三星并且它是否安装了 Spass 库。现在的问题是:如果用户使用 Spass 在三星上拥有 Lollipop 并注册了指纹。之后他升级到 Android M没有注册新的指纹。会manager.hasEnrolledFingerprints()
回归真实吗?换句话说,三星 Spass 库是否与 Android 操作系统共享其数据?谢谢。