相关文章推荐

如何检测手机是否有指纹识别硬件。我想要一个能检测到指纹硬件的代码。

我使用了这个代码,但这个代码在 "isHardwareDetected() "这个方法上显示了一个错误。

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 
    
2 个评论
atyc
FingerprintManager 在API级别28中被废弃,请使用BiometricPromptBiometricManager代替。
android
kotlin
fingerprint
android-fingerprint-api
Ghayas
Ghayas
发布于 2021-05-22
3 个回答
Ghayas
Ghayas
发布于 2022-03-08
已采纳
0 人赞同

我对问题代码做了一个小改动,现在工作正常了。

但 "FingerprintManagerCompat "类已被废弃。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            val manager = FingerprintManagerCompat.from(this)
            if (!manager.isHardwareDetected) {
                Log.e("tag","Fingerprint hardware not detected.")
            } else if (!manager.hasEnrolledFingerprints()) {
                Log.e("tag","No fingerprint is set")
            } else {
                Log.e("tag","Fingerprint is set")
    
这很有用,但请提到被废弃的类的替代品。
很快我就会用替代班级来更新这个答案
Muhammad Nouman
Muhammad Nouman
发布于 2022-03-08
0 人赞同

我也试过这个,效果很好

f (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        val fingerprintManager = FingerprintManagerCompat.from(this)
        if (!fingerprintManager .isHardwareDetected) {
            Log.e("tag","not detected.")
        } else if (!fingerprintManager .hasEnrolledFingerprints()) {
            Log.e("tag","No fingerprint is set")
        } else {
            Log.e("tag","Fingerprint is set")
    
Fiza
Fiza
发布于 2022-03-08
0 人赞同

AndroidManifest.xml内添加以下代码。

<uses-feature android:name="android.hardware.fingerprint" android:required="true" />
<uses-permission android:name="android.permission.USE_FINGERPRINT" />

在你需要检测硬件的地方使用这个。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
            fingerprintManager = (FingerprintManager) getSystemService(FINGERPRINT_SERVICE);
            if (!fingerprintManager.isHardwareDetected()) {
                Toast.makeText(getApplicationContext(), "Your device doesn't support fingerprint authentication", Toast.LENGTH_SHORT).show();
            if (ActivityCompat.checkSelfPermission(this, Manifest.permission.USE_FINGERPRINT) != PackageManager.PERMISSION_GRANTED) {
                Toast.makeText(getApplicationContext(), "Please enable the fingerprint permission", Toast.LENGTH_SHORT).show();
        ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.USE_FINGERPRINT}, FingerprintHandler.FINGERPRINT_PERMISSION);
 
推荐文章