Nfc Android Là Gì

  -  

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

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

Google reviews NFC vào năm 2010 với smartphone Nexus S vươn lên là thứ Android trước tiên được cung ứng NFC.

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

Tổng quan về NFC

Đặc điểm:

Near Field Communication

Là Công nghệ ko dây giống như nlỗi công nghệ Bluetooth không dây, Wifi

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

Low speed – Tốc độ truyền download lờ đờ ( 106 đến 414 kbps)

Thiết lập can hệ phải chăng (no discovery, no pairing)

Tương tác được cùng với các thiết bị thu vạc thụ động (không đề xuất nguồn điện)

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

TextURLDanh bạ (Liên hệ info)Media files ( bài bác hát, hình hình họa, Clip …)…

Ứng dụng thực tế:

Chia sẻ tập tin

Làm thẻ marketing năng lượng điện tử (Electronic business card)

Ctương đối game trên di động: liên kết thân 2 tuyệt những thứ nhằm thuộc đùa.

Msống rộng liên kết ( Android Beam: Sử dụng nhằm kích hoạt Bluetooth, Wifi Direct để share tài liệu một bí quyết nkhô hanh chóng)

Ưu điểm:

Thiết lập kết nối dễ dàng (ko vạc hiện, ko ghnghiền nối)

Triển khai phải chăng, công dụng y hệt như QR Codes

Yếu điểm:

Khoảng phương pháp giao tiếp ngắn

Bảo mật kém

2. Demo sử dụng NFC API Framework trên Android

Dữ liệu được tàng trữ vào thẻ (tag) gồm thẻ được ghi bằng các định hình. Nhưng vào Android Framework API nó chỉ dựa trên một chuẩn của NFC Forum là NDEF (NFC Data Exchange Format)

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

*

Trên Android đối tượng người dùng NDEF message là một format nhị phân được sử dụng nhằm đóng gói những dữ liệu được định mẫu mã. Nó được giải pháp vì chưng NFC Forum đến việc truyền sở hữu với tàng trữ cùng với NFC.

NDEF khái niệm những Messages với những Records. Đối tượng NDEF Record tiềm ẩn tài liệu được định kiểu dáng nhỏng MIME-type truyền thông, URI, hoặc một ngôn từ (payload) được tuỳ chỉnh.

DEMO được chia thành 2 Part

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

Part 2: Write NFC tags (Sử dụng Android devices để ghi dữ 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) tương hỗ thân 2 điện thoại cảm ứng thông minh có cung ứng 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 thao tác làm việc cùng với NFC bên trên Android, thực hiện NfcAdapter - lớp thay mặt mang lại 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 note from a tag or exchanging over p2p (app android 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 phương thức (PT) này tiến hành phần nhiều trang bị cần thiết làm cho p2p thao tác làm việc.

Xem thêm: Khái Niệm Dj Có Nghĩa Là Gì, Các Loại Hình Và Công Việc Của Nghề Dj

mNfcPendingIntent: là một trong PendingIntent để dẫn xuất cho tới bao gồm activity StickyNotesActivity, cùng với flag FLAG_ACTIVITY_SINGLE_TOP để áp dụng cù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“, do vậy Khi intent này được gửi mang đến, họ đang rước được ngôn từ message (payload).

Tiếp theo để chất nhận được gửi và nhận NDEF message, chúng ta chế 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 handler notes from inside our application * This will give sầu give priority to the foreground activity when dispatching a discovered Tag to an application. */ mNfcAdapter.enableForegroundDispatch(this, mNfcPendingIntent, mNdefExchangeFilters, null);PT này chất nhận được thiết bị khởi tạo nên kết nối ngang mặt hàng peer to peer (p2p) trải qua NFC.

enableForegroundNdefPush() đã gửi NDEF message (getNoteAsNdef()) cho tới thứ không giống.

enableForegroundDispatch() setup sự kiện lắng nghe (listener) cho intent cùng thanh 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 phía trên bọn chúng thừa nhận về NDEF message qua PT getNdefMessages() cùng so với bọn chúng qua PT promptForContent() để thừa nhận câu chữ (payload) được gửi tới.

Xem thêm: Phấn Nền Là Gì - Phấn Nền Và Phấn Phủ Khác Nhau Ở Điểm Nào

Giải ưng ý các 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 lệ xuất phát điểm từ 1 EditText. Sau đó được gửi vào NdefRecord và đẩy vào NdefMessage.

promptForContent(NdefMessage<>):Thông báo cho tới fan dùng làm sửa chữa câu chữ hiện 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() {