Là một technology giao tiếp tầm ngay gần (NFC) được cải tiến và phát triển dựa trên nguyên tắc tần số vô tuyến nhận dạng (Radio-frequency identification - RFID) có thể chấp nhận được một giữ hộ sóng radio đến một thẻ năng lượng điện tử thụ động. NFC là một trong tập phù hợp các chuẩn chỉnh cho các smartphones và những thiết bị giống như để thiết lập cấu hình liện lạc qua sóng vô tuyến với nhau bằng cách chạm chúng lại cùng nhau trong khoảng cách gần (một vài cm).

Bạn đang xem: Nfc android là gì

Google ra mắt NFC vào khoảng thời gian 2010 và điện thoại cảm ứng thông minh Nexus S biến chuyển thiết bị Android trước tiên được cung ứng NFC.

Trên game android 4.0 (Ice Cream Sandwich) nhân tài này được đặt tên là game android Beam góp mở rộng khả năng kết nối và chia sẻ dữ liệu.

Tổng quan liêu về NFC

Đặc điểm:

Near Field Communication

Là công nghệ không dây giống như như Bluetooth, Wifi

Truyền dữ liệu không dây tằm ngắn (từ 1-4 cm trên smartphones)

Low tốc độ – tốc độ truyền mua chậm ( 106 mang lại 414 kbps)

Thiết lập cửa hàng thấp (no discovery, no pairing)

Tương tác được với các thiết bị thu phát tiêu cực (không đề xuất nguồn điện)

Dữ liệu rất có thể truyển tải:

TextURLDanh bạ (Contact info)Media files ( bài hát, hình ảnh, video clip …)…

Ứng dụng thực tế:

Chia sẻ tập tin

Làm thẻ sale điện tử (Electronic business card)

Chơi game trên di động: liên kết giữa 2 hay nhiều thiết bị để thuộc chơi.

Mở rộng liên kết ( game android Beam: thực hiện để kích hoạt Bluetooth, Wifi Direct để share dữ liệu một giải pháp nhanh chóng)

Ưu điểm:

Thiết lập kết nối thuận tiện (không phát hiện, không ghép nối)

Triển khai rẻ, tính năng giống như QR Codes

Yếu điểm:

Khoảng cách giao tiếp ngắn

Bảo mật kém

2. Demo áp dụng NFC API Framework trên Android

Dữ liệu được tàng trữ trong thẻ (tag) tất cả thẻ được ghi bằng nhiều định dạng. Mà lại trong app android Framework API nó chỉ dựa vào một chuẩn chỉnh của NFC forums là NDEF (NFC Data Exchange Format)

Tiêu chuẩn chỉnh của NDEF Message:

*

Trên Android đối tượng NDEF message là một trong định dạng nhị phân được thực hiện để đóng góp gói những dữ liệu được định kiểu. Nó được pháp luật bởi NFC forums cho vấn đề truyền download và tàng trữ với NFC.

NDEF định nghĩa các Messages và những Records. Đối tượng NDEF Record tiềm ẩn dữ liệu được định mẫu mã như MIME-type media, URI, hoặc một ngôn từ (payload) được tuỳ chỉnh.

DEMO được chia thành 2 Part

Part 1: kiểm tra P2P (Android to lớn Android) để share text thân 2 ứng dụng

Part 2: Write NFC tags (Sử dụng game android devices nhằm ghi tài liệu trên tag NFC)

PART 1:

Ứng dụng demo:

Tên: Sticky Notes

Chức năng: Truyền dữ liệu (text) qua lại thân 2 điện thoại thông minh có cung cấp NFC

Yêu cầu:

Điện thoại Android:

Android API > 10 ( 2.3.3 – GINGERBREAD_MR1)Hỗ trợ NFC (Enable NFC function on both devices)

Coding:

Bắt đầu làm việc với NFC bên trên Android, thực hiện NfcAdapter - lớp đại diện thay mặt cho NFC trên device:

Trong phương thức (PT) onCreate() của lớp StickyNotesActivity:

public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); mNote = (EditText) findViewById(R.id.note); mNfcAdapter = NfcAdapter.getDefaultAdapter(this); if(mNfcAdapter == null) mNote.setText("NFC not available on this device!"); return; //Add listener for EditText when text changed mNote.addTextChangedListener(mTextWatcher); // Handle all of our received NFC intents in this activity. MNfcPendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0); // Intent filters for reading a note from a tag or exchanging over p2p (android to android). IntentFilter ndefDetected = new IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED); try ndefDetected.addDataType("text/plain"); catch (MalformedMimeTypeException e) e.printStackTrace(); mNdefExchangeFilters = new IntentFilter<> ndefDetected ;Trong thủ tục (PT) này thực thi những thứ quan trọng để mang lại p2p có tác dụng việc.

mNfcPendingIntent: là 1 PendingIntent để dẫn xuất tới thiết yếu activity StickyNotesActivity, với flag FLAG_ACTIVITY_SINGLE_TOP để thực hiện với PT onNewIntent().

ndefDetected: là IntentFilter chỉ lọc các hành vi gửi NDEF message (NfcAdapter.ACTION_NDEF_DISCOVERED) cùng với MIME type “text/plain“, do vậy khi intent này được gửi đến, họ sẽ rước được văn bản message (payload).

Tiếp theo để cho phép gửi và nhận NDEF message, bọn họ tạo PT enableNdefExchangeMode() trong onResume():

private void enableNdefExchangeMode() if(mNfcAdapter == null) return; if(Build.VERSION.SDK_INT 14) mNfcAdapter.enableForegroundNdefPush(this, getNoteAsNdef()); else mNfcAdapter.setNdefPushMessage(getNoteAsNdef(), this); /* Register foreground dispatch to lớn handler notes from inside our application * This will give give priority to the foreground activity when dispatching a discovered Tag khổng lồ an application. */ mNfcAdapter.enableForegroundDispatch(this, mNfcPendingIntent, mNdefExchangeFilters, null);PT này được cho phép thiết bị khởi tạo liên kết ngang mặt hàng peer lớn peer (p2p) trải qua NFC.

enableForegroundNdefPush() vẫn gửi NDEF message (getNoteAsNdef()) tới sản phẩm công nghệ khác.

enableForegroundDispatch() thiết lập sự kiện lắng nghe (listener) cho intent cùng lọc hành động gửi NDEF message (NfcAdapter.ACTION_NDEF_DISCOVERED).

Sau khi nhận thấy message PT onNewIntent() được gọi:

protected void onNewIntent(Intent intent) // NDEF exchange mode if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) NdefMessage<> msgs = getNdefMessages(intent); //Replace current text with new pay-load promptForContent(msgs<0>); Tại đây bọn chúng nhận về NDEF message qua PT getNdefMessages() với phân tích chúng qua PT promptForContent() nhằm nhận văn bản (payload) được giữ hộ tới.

Xem thêm: Nghĩa Của Từ : Fuzzy Là Gì ? (Từ Điển Anh Nghĩa Của Từ : Fuzzy

Giải thích những PT:

getNoteAsNdef(): cài đặt NDEF message để gửi đi

private NdefMessage getNoteAsNdef() byte<> textBytes = mNote.getText().toString().getBytes(); NdefRecord textRecord = new NdefRecord(NdefRecord.TNF_MIME_MEDIA, "text/plain".getBytes(), new byte<> , textBytes); return new NdefMessage(new NdefRecord<> textRecord);

textBytes: Mảng byte lưu dữ liệu (text) được nhập vào từ một EditText. Sau đó được chuyển vào NdefRecord cùng đẩy vào NdefMessage.

promptForContent(NdefMessage<>):Thông báo tới người dùng để làm thay cố nội dung hiện tại thành ngôn từ (pay-load) được nhờ cất hộ tới

private void promptForContent(final NdefMessage msg) { new AlertDialog.Builder(this).setTitle("Replace current content?") .setPositiveButton("Yes", new DialogInterface.OnClickListener() {