Android hỗ trợ quy trình mô phỏng thẻ ngoài máy chủ, tức là quy trình mô phỏng thẻ NFC bằng một Secure Element. Để biết thêm thông tin, hãy xem bài viết Tổng quan về quy trình mô phỏng thẻ dựa trên máy chủ.
Trong một số trường hợp sử dụng nhất định, chẳng hạn như sử dụng FeliCa cho phương tiện công cộng, quy trình mô phỏng thẻ ngoài máy chủ được cho phép khi màn hình của thiết bị bị khoá hoặc tắt, hoặc khi thiết bị bị tắt.
NFC bảo mật là một tính năng được ra mắt trong Android 10, cho phép bật quy trình mô phỏng thẻ NFC ngoài máy chủ chỉ khi màn hình của thiết bị được mở khoá. Việc triển khai tính năng này sẽ cho phép người dùng bật NFC bảo mật để tăng cường tính bảo mật.
Triển khai
Để triển khai tính năng NFC bảo mật, thiết bị phải có một bộ điều khiển NFC hỗ trợ tiêu chuẩn NCI 2.0 và phải sử dụng khung NFC của Dự án nguồn mở Android (AOSP). Thêm phần cứng (ro.boot.hardware.sku) hỗ trợ
tính năng NFC bảo mật trong tệp XML tài nguyên NFC
bằng thuộc tính config_skuSupportsSecureNfc.
API khung
Để triển khai NFC bảo mật, hãy triển khai các API khung sau đây có trong Dự án nguồn mở Android:
isSecureNfcSupported(): Kiểm tra xem thiết bị có hỗ trợ tính năng NFC bảo mật hay không.isSecureNfcEnabled(): Kiểm tra xem tính năng NFC bảo mật có được bật hay không.enableSecureNfc(boolean enable): Bật tính năng NFC bảo mật.
Giao diện người dùng của phần Cài đặt
Trong ứng dụng Cài đặt, hãy thêm một nút bật/tắt để cho phép người dùng bật và tắt tính năng NFC bảo mật. Bạn có thể tuỳ chỉnh chế độ cài đặt mặc định trong ứng dụng Cài đặt thành bật hoặc tắt.
Hình 1 cho thấy ví dụ về nút bật/tắt để bật và tắt NFC bảo mật trong ứng dụng Cài đặt tại Cài đặt > Thiết bị đã kết nối > Lựa chọn ưu tiên về kết nối > NFC > Yêu cầu mở khoá thiết bị để sử dụng NFC.
Hình 1. Ví dụ về nút bật/tắt để bật và tắt NFC bảo mật
Khi NFC bảo mật được bật và người dùng đặt thiết bị lên đầu đọc NFC, Android sẽ hiển thị thông báo Mở khoá để sử dụng NFC trên màn hình khoá như trong Hình 2.
Hình 2. Thông báo Mở khoá để sử dụng NFC trên màn hình khoá
Xác nhận kết quả
Để xác thực quá trình triển khai, hãy bật tính năng NFC bảo mật và xác minh rằng quy trình mô phỏng thẻ NFC bị tắt khi màn hình của thiết bị tắt hoặc bị khoá và khi thiết bị bị tắt.