NFC ANDROID LÀ GÌ
Là một technology giao tiếp tầm sát (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) cho phép một giữ hộ sóng radio mang lại một thẻ điện tử thụ động. NFC là một trong những tập phù hợp các chuẩn chỉnh cho những smartphones và những thiết bị tương tự để cấu hình thiết lập liện lạc qua sóng vô tuyến với nhau bằng cách chạm bọn 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 reviews NFC vào năm 2010 và điện thoại Nexus S phát triển thành thiết bị Android đầu tiên được cung cấp NFC.
Trên apk 4.0 (Ice Cream Sandwich) chức năng này chọn cái 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 lại về NFC
Đặc điểm:
Near Field Communication
Là technology không dây tương tự như như Bluetooth, Wifi
Truyền dữ liệu không dây tằm ngắn (từ 1-4 centimet trên smartphones)
Low speed – tốc độ truyền cài đặt chậm ( 106 đến 414 kbps)
Thiết lập shop thấp (no discovery, no pairing)
Tương tác được với những thiết bị thu phát tiêu cực (không đề xuất nguồn điện)
Dữ liệu có thể truyển tải:
TextURLDanh bạ (Contact info)Media files ( bài hát, hình ảnh, đoạn phim …)…Ứng dụng thực tế:
Chia sẻ tập tin
Làm thẻ marketing điện tử (Electronic business card)
Chơi trò chơi trên di động: kết nối giữa 2 hay các thiết bị để thuộc chơi.
Mở rộng liên kết ( apk Beam: thực hiện để kích hoạt Bluetooth, Wifi Direct để share dữ liệu một cách nhanh chóng)
…
Ưu điểm:
Thiết lập kết nối dễ dãi (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 tiếp xúc ngắn
Bảo mật kém
2. Demo thực hiện NFC API Framework bên trên Android
Dữ liệu được lưu trữ trong thẻ (tag) bao gồm thẻ được ghi bởi nhiều định dạng. Nhưng trong app android Framework API nó chỉ dựa trên một chuẩn chỉnh của NFC diễn đàn là NDEF (NFC Data Exchange Format)
Tiêu chuẩn của NDEF Message:

Trên Android đối tượng người tiêu dùng NDEF message là 1 trong những định dạng nhị phân được áp dụng để đóng gói các dữ liệu được định kiểu. Nó được qui định bởi NFC forums cho việc truyền cài và tàng trữ với NFC.
NDEF định nghĩa những Messages và các Records. Đối tượng NDEF Record chứa đựng dữ liệu được định dạng hình như MIME-type media, URI, hoặc một câu chữ (payload) được tuỳ chỉnh.
DEMO được chia làm 2 Part
Part 1: test P2P (Android khổng lồ Android) để share text thân 2 ứng dụng
Part 2: Write NFC tags (Sử dụng apk 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 tài liệu (text) qua lại thân 2 điện thoại cảm ứng có hỗ trợ 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 trên Android, thực hiện NfcAdapter - lớp thay mặt cho NFC bên trên device:
Trong thủ tụ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 cảnh báo from a tag or exchanging over p2p (android to lớn android). IntentFilter ndefDetected = new IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED); try ndefDetected.addDataType("text/plain"); catch (MalformedMimeTypeException e) e.printStackTrace(); mNdefExchangeFilters = new IntentFilter<> ndefDetected ;Trong cách làm (PT) này thực thi những thứ quan trọng để đến p2p làm cho việc.
Xem thêm:
mNfcPendingIntent: là một trong PendingIntent nhằm dẫn xuất tới chủ yếu activity StickyNotesActivity, với flag FLAG_ACTIVITY_SINGLE_TOP để sử dụng với PT onNewIntent().
ndefDetected: là IntentFilter chỉ thanh lọc các hành động gửi NDEF message (NfcAdapter.ACTION_NDEF_DISCOVERED) với MIME type “text/plain“, bởi vậy khi intent này được giữ hộ đến, họ sẽ lấy được câu chữ message (payload).
Tiếp theo để có thể chấp nhận được gửi với nhận NDEF message, bọn họ tạo PT enableNdefExchangeMode() vào 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 lớn handler notes from inside our application * This will give give priority to lớn the foreground activity when dispatching a discovered Tag lớn an application. */ mNfcAdapter.enableForegroundDispatch(this, mNfcPendingIntent, mNdefExchangeFilters, null);PT này chất nhận được thiết bị khởi tạo kết nối ngang mặt hàng peer to lớn peer (p2p) thông qua NFC.
enableForegroundNdefPush() vẫn gửi NDEF message (getNoteAsNdef()) tới vật dụng khác.
enableForegroundDispatch() thiết đặt sự kiện lắng nghe (listener) đến intent với lọc hành động gửi NDEF message (NfcAdapter.ACTION_NDEF_DISCOVERED).
Sau khi cảm nhận 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 chúng nhận về NDEF message qua PT getNdefMessages() cùng phân tích chúng qua PT promptForContent() để nhận câu chữ (payload) được gửi tới.
Xem thêm: Định Nghĩa Trigger Là Gì? Ý Nghĩa Và Cách Sử Dụng Trigger Vì Sao Giới Trẻ Lại Bị Trigger Bởi Mọi Thứ
Giải thích các PT:
getNoteAsNdef(): setup NDEF message nhằm 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 tài liệu (text) được nhập vào xuất phát từ 1 EditText. Tiếp nối được chuyển vào NdefRecord với đẩy vào NdefMessage.promptForContent(NdefMessage<>):Thông báo cho tới người dùng để thay vậy nội dung bây giờ thành ngôn từ (pay-load) được gửi tới
private void promptForContent(final NdefMessage msg) { new AlertDialog.Builder(this).setTitle("Replace current content?") .setPositiveButton("Yes", new DialogInterface.OnClickListener() {