2015-12-22 12 views
22

Tôi đang làm việc với xác thực in bằng ngón tay bằng cách sử dụng android 6.0 api. Yêu cầu của tôi là, nếu thiết bị hiện tại được hỗ trợ xác thực in ngón tay, thì tôi sẽ đi qua xác thực in bằng ngón tay khác sẽ sử dụng cách thông thường để đăng nhập ứng dụng.Cách kiểm tra tính tương thích của thiết bị để xác thực in bằng ngón tay trong android

Vì vậy, bất kỳ ai cũng có thể cho tôi biết, cách kiểm tra tính tương thích của thiết bị để xác thực in ngón tay trong Android.

Xin cảm ơn trước.

Trả lời

47

Bạn phải sử dụng phương thức isHardwareDetected trên lớp FingerprintManager.

Xác định xem phần cứng vân tay có hiện diện và hoạt động hay không. Trả về đúng nếu phần cứng có mặt và hoạt động, nếu không thì sẽ là 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 
    } 
} 

Đừng quên để thêm quyền truy cập chức năng vân tay trong AndroidManifest:

<uses-permission android:name="android.permission.USE_FINGERPRINT" /> 

Với Thư viện Hỗ trợ

Nếu bạn không muốn kiểm tra Build.VERSION , bạn cũng có thể kiểm tra trên thiết bị thấp hơn Android 6.0 với Thư viện hỗ trợ

Thêm phụ thuộc:

compile "com.android.support:support-v4:23.0.0" 

Và sử dụng lớp FingerprintManagerCompat như thế này:

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 
} 
+0

Có cách nào để ngăn chặn các ứng dụng từ việc niêm yết trên playstore trong trường hợp phần cứng không được tìm thấy hoặc không tương thích với ứng dụng? – Nirav

+0

Đó là một câu hỏi mới vì vậy hãy thêm câu hỏi và tôi sẽ trả lời – LaurentY

+0

Đã lưu ngày của tôi..đơn đăng tuyệt vời @LaurentY –

5

Chỉ cần một theo dõi câu trả lời Laurenty của. Bạn cần có quyền truy cập vào máy quét in ngón tay. Và cho rằng bạn cần phải thêm này vào Manifest của bạn.

<uses-permission android:name="android.permission.USE_FINGERPRINT" /> 
0

Phương pháp này Làm việc cho tất cả các phiên bản Android và cũng kiểm tra cho phép

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(); 
      } 
     } 
Các vấn đề liên quan