Thêm xác thực vân tay vào ứng dụng của bạn, sử dụng BiometricPrompt

Tác Giả: Lewis Jackson
Ngày Sáng TạO: 13 Có Thể 2021
CậP NhậT Ngày Tháng: 1 Tháng BảY 2024
Anonim
Thêm xác thực vân tay vào ứng dụng của bạn, sử dụng BiometricPrompt - ỨNg DụNg
Thêm xác thực vân tay vào ứng dụng của bạn, sử dụng BiometricPrompt - ỨNg DụNg

NộI Dung


Hãy để sử dụng API BiometricPrompt để tạo một ứng dụng cho phép người dùng xác nhận danh tính của họ bằng dấu vân tay.

Mở Android Studio và tạo một dự án mới, sử dụng khuôn mẫu của Activity trống rỗng. Khi được nhắc, hãy đặt SDK tối thiểu của dự án của bạn thành 28 hoặc cao hơn, vì điều này sẽ ngăn ứng dụng của bạn được cài đặt trên bất cứ thứ gì sớm hơn Android Pie.

Nếu bạn muốn làm cho ứng dụng của mình có thể truy cập được vào phạm vi rộng hơn của các thiết bị Android, thì bạn cần kiểm tra phiên bản Android nào mà ứng dụng của bạn hiện đang được cài đặt và sau đó xử lý xác thực sinh trắc học khác nhau, tùy thuộc vào cấp API API của thiết bị.

Thêm thư viện Sinh trắc học

Để bắt đầu, hãy mở tệp build.gradle cấp mô-đun của bạn và thêm phiên bản mới nhất của thư viện Sinh trắc học làm phụ thuộc dự án:


phụ thuộc {thực hiện androidx.biometric: biometric: 1.0.0-alpha03

Thêm quyền USE_BIOMETRIC

API BiometricPrompt cho phép bạn khai thác tất cả các phương thức xác thực sinh trắc học khác nhau mà thiết bị hỗ trợ, thông qua một sự cho phép duy nhất.

Mở dự án của bạn Manifest và thêm quyền cho phép USE_BIOMETRIC

Tạo bố cục ứng dụng của bạn

Tiếp theo, hãy tạo ra ứng dụng bố trí của chúng tôi. Tôi sẽ thêm một nút duy nhất, khi gõ, sẽ khởi chạy hộp thoại xác thực dấu vân tay:

Mở tệp tin chuỗi String dự án của bạn và thêm tài nguyên chuỗi auth


BiometricPromptSample Xác thực bằng dấu vân tay

Xác thực danh tính người dùng

Bây giờ, hãy để Lôi nhìn vào cách bạn xác thực danh tính người dùng, sử dụng BiometricPrompt.

Tạo một ví dụ nhắc nhở sinh trắc học

Lớp BiometricPrompt bao gồm lớp Builder () đồng hành, bạn có thể sử dụng để tạo một cá thể BiometricPrompt và bắt đầu xác thực:

BiometricPrompt.PromptInfo promptInfo = new BiometricPrompt.PromptInfo.Builder ()

Khi xây dựng thể hiện BiometricPrompt của bạn, bạn sẽ cần xác định văn bản sẽ xuất hiện trong hộp thoại xác thực và tùy chỉnh nút phủ định âm thanh, đó là nút cho phép người dùng hủy xác thực.

Để cấu hình hộp thoại xác thực, bạn sẽ cần cung cấp thông tin sau:

  • setTitle. Tiêu đề của dấu nhắc xác thực dấu vân tay. (Cần thiết)
  • setSubtitle. Phụ đề của dấu nhắc xác thực dấu vân tay. (Không bắt buộc)
  • mô tả. Một mô tả bổ sung màllll sẽ được hiển thị trong hộp thoại xác thực của bạn. (Không bắt buộc)
  • setNegativeButton (văn bản, người thực thi, người nghe). Đây là nút âm bản Nhãn nhãn, ví dụ: Hủy Hủy, hoặc Thoát Thoát, khi cấu hình nút phủ định, bạn cũng sẽ cần cung cấp một phiên bản Executor và OnClickListener để người dùng có thể bỏ qua hộp thoại xác thực.

Tại thời điểm viết bài, có thể tùy chỉnh biểu tượng hoặc lỗi mà sử dụng trong hộp thoại xác thực.

Cuối cùng, bạn sẽ cần gọi build (). Điều này cho chúng ta như sau:

cuối cùng BiometricPrompt.PromptInfo promptInfo = new BiometricPrompt.PromptInfo.Builder () .setTitle ("Tiêu đề văn bản ở đây") .setSubtitle ("Subtitle đi đây") .setDescrip ("Đây là mô tả") .xây dựng();

Xử lý các cuộc gọi lại xác thực

Ví dụ BiometricPrompt được chỉ định một tập hợp các phương thức gọi lại xác thực mà màll sẽ thông báo cho ứng dụng của bạn về kết quả của quá trình xác thực.

Bạn cần phải bọc tất cả các cuộc gọi lại này trong một thể hiện của lớp BiometricPrompt.AuthenticationCallback:

BiometricPrompt myBiometricPrompt = new BiometricPrompt (hoạt động, newExecutor, BiometricPrompt.AuthenticationCallback () {

Bước tiếp theo là triển khai một số hoặc tất cả các phương thức gọi lại sau:

1. onAuthenticationSucceeded ()

Phương pháp này được gọi khi dấu vân tay được khớp thành công với một trong những dấu vân tay đã đăng ký trên thiết bị. Trong trường hợp này, một đối tượng xác thựcResult được chuyển đến cuộc gọi lại onAuthenticationSucceeded và ứng dụng của bạn sẽ thực hiện một tác vụ để đáp lại xác thực thành công này.

Để giúp mọi thứ đơn giản, ứng dụng của chúng tôi sẽ phản hồi bằng cách in lên Android Studio Nhật ký Logcat:

@Override void công khai trênAuthenticationSucceeded (@NonNull BiometricPrompt.AuthenticationResult result) {super.onAuthenticationSucceeded (result); Log.d (TAG, "Dấu vân tay được nhận dạng thành công"); }

2. onAuthenticationFails ()

Phương pháp này được kích hoạt khi quá trình quét được hoàn thành thành công nhưng dấu vân tay không khớp với bất kỳ bản in nào được đăng ký trên thiết bị. Một lần nữa, ứng dụng của chúng tôi sẽ phản hồi sự kiện xác thực này, bằng cách in một bản Logcat:

@Override void công khai trênAuthenticationFails () {super.onAuthenticationFails (); Log.d (TAG, "Dấu vân tay không được nhận dạng"); }

3. onAuthenticationError

Cuộc gọi lại này được kích hoạt bất cứ khi nào xảy ra lỗi không thể phục hồi và xác thực có thể được hoàn thành thành công. Ví dụ, có lẽ cảm biến cảm ứng của thiết bị được bao phủ bởi bụi bẩn hoặc dầu mỡ, người dùng đã đăng ký bất kỳ dấu vân tay nào trên thiết bị này hoặc không có đủ bộ nhớ để thực hiện quét sinh trắc học đầy đủ.

Tại đây, mã mà tôi sẽ sử dụng trong ứng dụng của mình:

@Override void công khai trênAuthenticationError (int errorCode, @NonNull CharSequence errString) {super.onAuthenticationError (errorCode, errString); if (errorCode == BiometricPrompt.ERROR_NEGECT_BUTTON) {} other {Log.d (TAG, "Xảy ra lỗi không thể phục hồi"); }}

4. onAuthenticationHỗ trợ

Phương thức trợ giúp onAuthenticationHelp được gọi bất cứ khi nào xảy ra lỗi không nghiêm trọng và bao gồm mã trợ giúp và cung cấp thêm thông tin về lỗi.

Để giúp giữ cho mã của chúng tôi đơn giản, tôi đã thắng được sử dụng onAuthenticationHelp trong ứng dụng của chúng tôi, nhưng việc triển khai sẽ giống như thế này:

@Override void công khai trênAuthenticationHelp (int helpCode, CharSequence helpString) {super.onAuthenticationHelp (helpCode, helpString); biometricCallback.onAuthenticationHelp (helpCode, helpString); }

Cuối cùng, chúng ta cần gọi phương thức xác thực () của thể hiện BiometricPrompt:

myBiometricPrompt.authenticate (promptInfo);

Triển khai xác thực sinh trắc học Android Pieiên

Khi bạn đã hoàn thành tất cả các bước trên, MainActivity của bạn sẽ trông giống như thế này:

nhập androidx.appcompat.app.AppCompatActivity; nhập androidx.biometric.BiometricPrompt; nhập android.os.Bundle; nhập java.util.conc hiện.Executor; nhập java.util.conc hiện.Executors; nhập androidx.fragment.app.FragmentActivity; nhập android.util.Log; nhập android.view.View; nhập androidx.annotation.NonNull; lớp công khai MainActivity mở rộng AppCompatActivity {chuỗi ký tự tĩnh cuối cùng TAG = MainActivity. class.getName (); @Override void void onCreate (Gói đã lưuInstanceState) {super.onCreate (yetInstanceState); setContentView (R.layout.activity_main); // Tạo một nhóm luồng với một luồng duy nhất // Executor newExecutor = Executors.newSingleThreadExecutor (); Hoạt động FragmentActivity = này; // Bắt đầu lắng nghe các sự kiện xác thực // BiometricPrompt myBiometricPrompt = new BiometricPrompt (hoạt động, newExecutor, BiometricPrompt.AuthenticationCallback () {@Override // onAuthenticationError được gọi khi xảy ra lỗi nghiêm trọng CharSequence errString) {super.onAuthenticationError (errorCode, errString); if (errorCode == BiometricPrompt.ERROR_NEGECT_BUTTON) {} khác {// In a to Logcat // Log.d (TAG, "Đã xảy ra lỗi" // onAuthenticationSucceeded được gọi khi khớp dấu vân tay thành công // @Override void công khai onAuthenticationSucceeded (@NonNull BiometricPrompt.AuthenticationResult result) {super.onAuthenticationSucceeded (result); được công nhận thành công ");} // onAuthenticationFails được gọi khi dấu vân tay không khớp // @Override void công khai onAuthenticationFails () {super.onAuthenticationFails (); // In a to Log mèo // Log.d (TAG, "Dấu vân tay không được nhận dạng"); }}); // Tạo phiên bản BiometricPrompt // cuối cùng BiometricPrompt.PromptInfo promptInfo = new BiometricPrompt.PromptInfo.Builder () // Thêm một số văn bản vào hộp thoại // .setTitle ("Tiêu đề văn bản ở đây") .setSub ) .setDes mô tả ("Đây là mô tả") .setNegativeButtonText ("Hủy") // Xây dựng hộp thoại // .build (); // Gán một onClickListener cho nút xác thực của ứng dụng trên ứng dụng // findViewById (R.id.launchAuthentication) .setOnClickListener (new View.OnClickListener () {@Override void công khai trênClick (Xem v) {myBiometricPromp. }); }}

Kiểm tra dự án của bạn

Bây giờ, bạn đã tạo ra dự án của mình, đã đến lúc thử nghiệm nó và xem nó có thực sự bổ sung xác thực dấu vân tay cho ứng dụng của bạn không!

Để chạy dự án này, bạn sẽ cần một điện thoại thông minh hoặc máy tính bảng vật lý mà chạy chạy Android Pie hoặc Thiết bị ảo Android (AVD) mà sử dụng bản xem trước Android P hoặc cao hơn.

Bạn cũng sẽ phải đăng ký ít nhất một dấu vân tay trên thiết bị của mình. Nếu bạn sử dụng thiết bị Android vật lý, thì:

  • Bảo vệ màn hình khóa của bạn bằng mã PIN, mật khẩu hoặc mẫu, nếu bạn đã có sẵn (bằng cách điều hướng đến Cài đặt của cài đặt> Màn hình khóa và bảo mật> Loại khóa màn hình> Mẫu / Ghim / Mật khẩu, sau đó làm theo hướng dẫn trên màn hình).
  • Khởi chạy thiết bị của bạn Cài đặt ứng dụng của bạn.
  • Chọn màn hình Khóa và bảo mật.
  • Chọn máy quét vân tay.
  • Thực hiện theo các hướng dẫn để đăng ký một hoặc nhiều dấu vân tay.

Các thiết bị ảo trên Android không có một cảm biến cảm ứng vật lý, vì vậy bạn sẽ cần phải mô phỏng một sự kiện cảm ứng:

  • Khởi chạy AVD của bạn, nếu bạn chưa có.
  • Bên cạnh AVD, bạn sẽ thấy một dải nút. Tìm nút Ba chấm nhiều điểm khác nhau (nơi con trỏ được định vị trong ảnh chụp màn hình sau) và nhấp chuột. Điều này sẽ khởi chạy cửa sổ điều khiển mở rộng trên phạm vi điều khiển.
  • Trong cửa sổ Điều khiển mở rộng, chọn Dấu vân tay của nhóm. Điều này mở ra một bộ điều khiển, nơi bạn có thể mô phỏng các sự kiện chạm khác nhau.
  • Mở menu thả xuống và chọn dấu vân tay mà bạn muốn đăng ký trên thiết bị này; Tôi sử dụng ngón tay của tôi
  • Bây giờ, hãy để chuyển sự chú ý của chúng ta sang thiết bị mô phỏng. Khởi chạy ứng dụng Cài đặt AVD Tải xuống ứng dụng AVD và chọn Bảo mật & vị trí.
  • Nếu bạn đã cài đặt mã PIN, mật khẩu hoặc mẫu, sau đó chọn Khóa màn hình, và làm theo hướng dẫn trên màn hình để bảo vệ màn hình khóa của bạn, sau đó điều hướng quay lại màn hình Cài đặt chính> Bảo mật & vị trí.
  • Chọn Dấu vân tay, theo sau là Thêm dấu vân tay.
  • Bây giờ bạn sẽ được nhắc nhấn ngón tay vào cảm biến cảm ứng. Thay vào đó, hãy tiếp tục nhấp vào Chạm vào cảm biến cảm biến cho đến khi bạn thấy Dấu vân tay được thêm vào.

  • Nhấp vào Xong xong.
  • Nếu bạn muốn đăng ký dấu vân tay bổ sung, sau đó rửa sạch và lặp lại các bước trên.

Khi bạn đã đăng ký ít nhất một dấu vân tay, bạn đã sẵn sàng đưa ứng dụng của mình vào thử nghiệm. Tôi sẽ kiểm tra cách ứng dụng của chúng tôi xử lý ba tình huống khác nhau:

  • Người dùng cố gắng xác thực bằng dấu vân tay đã đăng ký.
  • Người dùng cố gắng xác thực bằng dấu vân tay đã đăng ký trên thiết bị này.
  • Người dùng cố gắng xác thực bằng cách sử dụng dấu vân tay chưa đăng ký, nhiều lần và liên tiếp.

Hãy cùng cố gắng xác thực bằng cách sử dụng dấu vân tay mà chúng tôi vừa đăng ký trên thiết bị của mình:

  • Hãy chắc chắn rằng bạn đang xem màn hình Android Studio Log Log Monitor, vì đây là nơi ứng dụng của bạn khác nhau sẽ xuất hiện.

  • Cài đặt ứng dụng của bạn trên thiết bị thử nghiệm.
  • Nhấn vào ứng dụng của bạn. Hộp thoại xác thực dấu vân tay sẽ xuất hiện.
  • Nếu bạn sử dụng một thiết bị vật lý, sau đó nhấn và giữ ngón tay của bạn dựa vào cảm biến cảm ứng cảm ứng. Nếu bạn sử dụng AVD, sau đó sử dụng nút cảm ứng của cảm ứng cảm ứng để mô phỏng sự kiện chạm.
  • Kiểm tra màn hình Logcat. Nếu xác thực thành công, thì bạn sẽ thấy như sau: Dấu vân tay được công nhận thành công

Tiếp theo, hãy để Voi xem điều gì sẽ xảy ra nếu chúng ta cố gắng xác thực bằng cách sử dụng dấu vân tay được đăng ký trên thiết bị này:

  • Nhấn vào ứng dụng xác thực ứng dụng này với nút vân tay.
  • Nếu bạn sử dụng AVD, thì hãy sử dụng cửa sổ Điều khiển mở rộng của chế độ trực tuyến để chọn dấu vân tay isn Quảng đăng ký trên thiết bị này; Tôi sử dụng ngón tay của tôi bằng cách sử dụng ngón tay cảm ứng.
  • Nếu bạn sử dụng điện thoại thông minh hoặc máy tính bảng Android vật lý, hãy nhấn và giữ ngón tay của bạn dựa vào cảm biến cảm ứng cảm ứng - hãy chắc chắn rằng bạn đã sử dụng một ngón tay được đăng ký trên thiết bị này!
  • Kiểm tra Android Studio Log Logcat, bây giờ nó sẽ hiển thị Dấu vân tay không được nhận diện.

Như đã đề cập, API BiometricPrompt tự động xử lý các nỗ lực xác thực thất bại quá mức. Để kiểm tra chức năng này:

  • Nhấn vào ứng dụng của bạn.
  • Cố gắng xác thực nhiều lần liên tiếp, sử dụng dấu vân tay chưa đăng ký.
  • Sau một vài lần thử, hộp thoại sẽ tự động đóng lại. Kiểm tra Logcat của Android Studio, và bạn sẽ thấy như sau: Đã xảy ra lỗi không thể khắc phục.

Bạn có thể tải xuống ứng dụng hoàn chỉnh từ GitHub.

Gói lại

Trong bài viết này, chúng tôi đã khám phá API BiometricPrompt mới của Android Pie, cho phép bạn dễ dàng thêm xác thực dấu vân tay vào ứng dụng của mình. Bạn có nghĩ BiometricPrompt là một cải tiến trên các phương thức xác thực dấu vân tay trước đây của Android không? Cho chúng tôi biết trong các ý kiến ​​dưới đây!

Tặng quà quốc tế Samsung Galaxy Note 9!

Monica Porter

Tháng BảY 2024

Nếu bạn đang tìm kiếm cách tốt nhất để cập nhật với AndroidAuthority.com, thì không có gì khác ngoài ứng dụng AA cho Android. Có ẵn miễn phí trong Cửa...

Nếu bạn ở hữu Galaxy Note 9 trên print, hãy lắng nghe! Nhiều người dùng trên internet đã báo cáo bản cập nhật Android 9 Pie / amung One UI đang bắt đầu được tung ra ...

Chúng Tôi Khuyên