我正在尝试在我的应用程序上添加一小部分,以检测android设备是否具有内置的指纹硬件。有两个页面分别讨论了该主题:
Marshmallow Fingerprint Scanner Hardware Presence
和
Android check for fingerprint scanner is available
但是他们都没有给我一个可行的解决方案,我正在寻找可以在14岁以下的API上运行的东西。
任何帮助将不胜感激!
答案 0 :(得分:1)
您必须在isHardwareDetected
类上使用方法FingerprintManager
。
确定指纹硬件是否存在并且可以正常工作。如果存在硬件且功能正常,则返回true,否则返回false。
// Check if we're running on Android 6.0 (M) or higher
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
//Fingerprint API only available on from Android 6.0 (M)
FingerprintManager fingerprintManager = (FingerprintManager) context.getSystemService(Context.FINGERPRINT_SERVICE);
if (!fingerprintManager.isHardwareDetected()) {
// Device doesn't support fingerprint authentication
} else if (!fingerprintManager.hasEnrolledFingerprints()) {
// User hasn't enrolled any fingerprints to authenticate with
} else {
// Everything is ready for fingerprint authentication
}
}
不要忘记添加访问指纹功能的权限 AndroidManifest:
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
带有支持库
如果您不想检查Build.VERSION,也可以使用支持库在低于Android 6.0的设备上进行检查
添加依赖项:
compile "com.android.support:support-v4:23.0.0"
并使用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
}
答案 1 :(得分:1)
在清单文件中添加指纹权限,并添加此代码以检测指纹硬件,请记住,只有从电话设置中启用了指纹识别后,此功能才会检测到。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { //Get an instance of KeyguardManager and Fingerpr`enter code here`intManager// KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); FingerprintManager fingerprintManager = (FingerprintManager) getSystemService(FINGERPRINT_SERVICE);} //Check whether the device has a fingerprint sensor// if (!fingerprintManager.isHardwareDetected()) { //any thing}
答案 2 :(得分:0)
我相信在旧版本的Android中没有可使用的官方指纹API。您可以检查API版本是否高于23,如果不是,则设备没有可以使用的指纹传感器。