我正在使用android 6.0 api進行手指打印身份驗證。 我的要求是,如果當前設備支持指紋認證,那麼我將通過指紋認證,否則將使用正常的方式登錄應用程序。如何檢查手指打印身份驗證的設備兼容性android
因此,任何人都可以告訴我,如何檢查Android的指紋認證設備兼容性。
在此先感謝。
我正在使用android 6.0 api進行手指打印身份驗證。 我的要求是,如果當前設備支持指紋認證,那麼我將通過指紋認證,否則將使用正常的方式登錄應用程序。如何檢查手指打印身份驗證的設備兼容性android
因此,任何人都可以告訴我,如何檢查Android的指紋認證設備兼容性。
在此先感謝。
您必須使用FingerprintManager
類中的方法isHardwareDetected
。
確定指紋硬件是否存在並且功能正常。返回 如果硬件存在且有效,則返回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
}
只是跟進LaurentY的答案。 您需要獲得訪問指紋掃描儀的權限。爲此,您需要將此添加到您的Manifest。
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
此方法適用於所有的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();
}
}
有沒有一種方法,以防止萬一在Play商店中申請上市的硬件沒有發現或與不兼容應用? – Nirav
這是一個新問題,所以請添加一個問題,我會回答 – LaurentY
保存我的日子..真棒帖子@LaurentY –