Nfc Android Là Gì

 - 

Là một technology giao tiếp tầm ngay gần (NFC) được phát triển dựa trên nguyên lý tần số vô tuyến đường nhận dạng (Radio-frequency identification - RFID) được cho phép một gởi sóng radio mang đến một thẻ đ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ị tương tự để tùy chỉnh thiết lập liện lạc qua sóng vô con đường 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 ba cm).

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

Google giới thiệu NFC vào thời điểm năm 2010 và điện thoại cảm ứng Nexus S vươn lên là thiết bị Android thứ nhất được hỗ trợ NFC.

Trên android 4.0 (Ice Cream Sandwich) tài năng này được lấy tên là android Beam góp mở rộng kỹ năng kết nối và share dữ liệu.

Tổng quan liêu về NFC

Đặc điểm:

Near Field Communication

Là technology không dây tựa như như Bluetooth, Wifi

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

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

Thiết lập liên tưởng thấp (no discovery, no pairing)

Tương tác được với các thiết bị thu phát thụ động (không yêu cầu nguồn điện)

Dữ liệu hoàn toàn có thể truyển tải:

TextURLDanh bạ (Contact info)Media files ( bài xích 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 các thiết bị để cùng 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 bí quyết nhanh chóng)

Ưu điểm:

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

Triển khai rẻ, công dụ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 lưu trữ trong thẻ (tag) có thẻ được ghi bằng nhiều định dạng. Tuy vậy trong apk 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 chỉnh của NDEF Message:

*

Trên Android đối tượng người tiêu dùng NDEF message là một trong những định dạng nhị phân được sử dụng để đóng góp gói các dữ liệu được định kiểu. Nó được phương tiện bởi NFC forum cho việc truyền download và tàng trữ với NFC.

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

DEMO được chia làm 2 Part

Part 1: kiểm tra P2P (Android to lớn Android) để chia sẻ text giữa 2 ứng dụng

Part 2: Write NFC tags (Sử dụng app android devices nhằm ghi dữ 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 giữa 2 smartphone 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, tiến hành NfcAdapter - lớp thay mặt đại diện cho NFC trên device:

Trong cách tiến hành (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 phương thức (PT) này xúc tiến những thứ quan trọng để cho p2p làm cho việc.

Xem thêm: Liên Hệ

mNfcPendingIntent: là 1 trong PendingIntent để 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ỉ lọc các hành động gửi NDEF message (NfcAdapter.ACTION_NDEF_DISCOVERED) cùng với MIME type “text/plain“, vì vậy lúc intent này được giữ hộ đến, bọn họ sẽ lấy được câu chữ message (payload).

Tiếp theo để chất nhận được 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 khổng lồ handler notes from inside our application * This will give give priority khổng lồ the foreground activity when dispatching a discovered Tag to lớn an application. */ mNfcAdapter.enableForegroundDispatch(this, mNfcPendingIntent, mNdefExchangeFilters, null);PT này có thể chấp nhận được thiết bị khởi tạo kết nối ngang mặt hàng peer khổng lồ peer (p2p) thông qua NFC.

enableForegroundNdefPush() vẫn gửi NDEF message (getNoteAsNdef()) tới thiết bị khác.

enableForegroundDispatch() setup sự khiếu nại lắng nghe (listener) mang đến intent cùng lọc hành vi gửi NDEF message (NfcAdapter.ACTION_NDEF_DISCOVERED).

Sau khi nhận được 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() cùng phân tích bọn chúng qua PT promptForContent() để nhận nội dung (payload) được giữ hộ tới.

Xem thêm: Cách Móc Pô Xe Dream Để Có Tiếng Nổ Hay, Cách Móc Bô Xe Dream

Giải thích những PT:

getNoteAsNdef(): thiết lập 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 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 cùng đẩy vào NdefMessage.

promptForContent(NdefMessage<>):Thông báo cho tới người dùng để thay cố nội dung lúc này thành nội dung (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() {