Nfc tutorial

Preview:

Citation preview

Speaker: 陳柏伸GitHub: https://github.com/matisse11235813/AndroidNFC

NFC Tutorial

Outline• Background knowledge• DEMO• 實作一個 NFC Tag Reader• 實作一個 NFC Tag Writer• 小結• References

Near Field Communication , NFC• 近場通訊(英語: Near Field Communication , NFC ),又稱近距離無線通訊,是一種短距離的高頻無線通訊技術,允許電子裝置之間進行非接觸式點對點資料傳輸,在十公分( 3.9 英吋)內交換資料。• 這個技術由非接觸式射頻識別( RFID)演變而來,由飛利浦半導體(現恩智浦半導體)、諾基亞和索尼共同研製開發。

不同通訊技術比較近場通訊是一種短距高頻的無線電技術,在 13.56MHz 頻率運行。其傳輸速度最高可達 424 Kbit/ 秒。目前近場通訊已通過成為 ISO/IEC IS 18092 國際標準、 EMCA-340 標準與 ETSI TS 102 190標準。

NFC 的工作模式• NFC 卡片模擬模式 (card emulation mode)• 點對點模式 (peer-to-peer mode) • 讀寫模式 (reader/writer mode)

NFC 卡片模擬模式• NFC 可模擬 RFID 機體電路 (IC) 卡,搭配安全模組,可讓使用者安全地進行交易。可以替代現在大量的 IC 卡(包括信用卡)場合商場刷卡、 IPASS 、門禁管制、車票、門票等等。

點對點模式• 可透過 NFC 連線在不同的 NFC 裝置之間分享名片等資訊。也能透過 NFC 連線快速設定 WiFi* 或藍牙 * 連線,再以 WiFi 或藍牙連線傳送大型檔案。• Android Beam• Samsung S Beam• 市面上各種藍芽音響

讀寫模式• 使用 NFC Tag 啟動 NFC 裝置的一些動作,或從海報或者展覽資訊電子標籤上讀取相關資訊。• 跟 QR CODE 比較

NFC Reader/Writer modeLive DEMO

實作NFC Tag Reader

<uses-permission>• 在 AndroidManifest.xml 裡加上下面這段,讓系統允許 app 去控制

NFC 的硬體。• <uses-permission android:name="android.permission.NFC" />

<uses-sdk>• 在 AndroidManifest.xml ,因為 api level 10 以上才支援對 NFC Tag的讀寫功能。• <uses-sdk android:minSdkVersion="10" />

NFC Tag 支援的資料格式

Android has the most support for the NDEF standard • The data stored in the tag can also be written in a variety of formats,

but many of the Android framework APIs are based around a NFC Forumstandard called NDEF (NFC Data Exchange Format).• Android has the most support for the NDEF standard, which is defined

by the NFC Forum.

NDEFNDEF data is encapsulated inside a message (NdefMessage) that contains one or more records (NdefRecord). Each NDEF record must be well-formed according to the specification of the type of record that you want to create.

Obtaining information from intents• If an activity starts because of an NFC intent, you can obtain

information about the scanned NFC tag from the intent.

• NdefMessage 被封裝在 intent 裡面, activity 就是透過 tag 所傳的intent 被 trigger 起來。

The Tag Dispatch System

<intent-filter>

Layout Design

在 onResume 時做動作

自訂方法 : getNdefMessages

自訂方法 : setNoteBody

實作NFC Tag Writer

<uses-permission>• 在 AndroidManifest.xml 裡加上下面這段,讓系統允許 app 去控制

NFC 的硬體。• <uses-permission android:name="android.permission.NFC" />

<uses-sdk>• 在 AndroidManifest.xml ,因為 api level 10 以上才支援對 NFC Tag的讀寫功能。• <uses-sdk android:minSdkVersion="10" />

UI 設計

NfcAdapter

OnClickListener()

enableForegroundDispatch()

onNewIntent()

NDEFNDEF data is encapsulated inside a message (NdefMessage) that contains one or more records (NdefRecord). Each NDEF record must be well-formed according to the specification of the type of record that you want to create.

小結• 優缺點

Recommended