如何在android中检查指纹认证的设备兼容性
我正在使用android 6.0 api进行指纹认证。 我的要求是,如果当前设备支持指纹认证,那么我将通过指纹认证,否则将使用正常方式登录应用程序 所以,任何人都可以告诉我,如何在android中检查指纹认证的设备兼容性如何在android中检查指纹认证的设备兼容性,android,authentication,fingerprint,Android,Authentication,Fingerprint,我正在使用android 6.0 api进行指纹认证。 我的要求是,如果当前设备支持指纹认证,那么我将通过指纹认证,否则将使用正常方式登录应用程序 所以,任何人都可以告诉我,如何在android中检查指纹认证的设备兼容性 提前感谢。您必须在FingerprintManager类中使用方法ishardwaredeteced 确定指纹硬件是否存在并正常工作。退换商品 如果硬件存在且功能正常,则为true,否则为false 别忘了在AndroidManifest中添加访问指纹函数的权限。 自API 2
提前感谢。您必须在
FingerprintManager
类中使用方法ishardwaredeteced
确定指纹硬件是否存在并正常工作。退换商品
如果硬件存在且功能正常,则为true,否则为false
别忘了在AndroidManifest中添加访问指纹函数的权限。
自API 28起:
<uses-permission android:name=" android.permission.USE_BIOMETRIC" />
并使用FingerprintManagerCompat
类,如下所示:
FingerprintManagerCompat fingerprintManagerCompat = FingerprintManagerCompat.from(context);
if (!fingerprintManagerCompat.isHardwareDetected()) {
// Device doesn't support fingerprint authentication
} else if (!fingerprintManagerCompat.hasEnrolledFingerprints()) {
// User hasn't enrolled any fingerprints to authenticate with
} else {
// Everything is ready for fingerprint authentication
}
这只是劳伦蒂回答的后续问题。 您需要权限才能访问指纹扫描仪。为此,您需要将此添加到您的清单中 API 27及之前
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
API 28及更高版本
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
此方法适用于所有Android版本,并检查权限
private boolean isSensorAvialable() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
return ActivityCompat.checkSelfPermission(AppContext, Manifest.permission.USE_FINGERPRINT) == PackageManager.PERMISSION_GRANTED &&
AppContext.getSystemService(FingerprintManager.class).isHardwareDetected();
} else {
return FingerprintManagerCompat.from(AppContext).isHardwareDetected();
}
}
执行提示无需任何权限:
FingerprintManagerCompat fingerprintManagerCompat = FingerprintManagerCompat.from (context);
if (! fingerprintManagerCompat.isHardwareDetected ()) {
// Device doesn't support fingerprint authentication
} else if (! fingerprintManagerCompat.hasEnrolledFingerprints ()) {
// User hasn't enrolled any fingerprints to authenticate with
} else {
// Everything is ready for fingerprint authentication
}
[BiometricPrompt][1]
如果硬件找不到或与应用程序不兼容,是否有办法防止应用程序在playstore上列出?这是一个新问题,请添加一个问题,我将回答这个问题。awesome post@LaurentY不推荐使用。立即使用。在API 28中,不推荐使用指纹管理器和指纹管理器Compat。28中是否有替代类具有isHardwareDetected和HasEnrolled指纹方法或等效方法?
不推荐使用。使用
而不是编辑它。谢谢
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
private boolean isSensorAvialable() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
return ActivityCompat.checkSelfPermission(AppContext, Manifest.permission.USE_FINGERPRINT) == PackageManager.PERMISSION_GRANTED &&
AppContext.getSystemService(FingerprintManager.class).isHardwareDetected();
} else {
return FingerprintManagerCompat.from(AppContext).isHardwareDetected();
}
}
FingerprintManagerCompat fingerprintManagerCompat = FingerprintManagerCompat.from (context);
if (! fingerprintManagerCompat.isHardwareDetected ()) {
// Device doesn't support fingerprint authentication
} else if (! fingerprintManagerCompat.hasEnrolledFingerprints ()) {
// User hasn't enrolled any fingerprints to authenticate with
} else {
// Everything is ready for fingerprint authentication
}
[BiometricPrompt][1]