我們根據google的官方文檔來

nfc(near field communication 近場通訊),他是目前逐漸火起來的一種技術,在以前,好像還一直不冷不熱的樣子,現在好像是塊要爆發了,是以我們搞android開發的感覺強撸了一把,随我來學習一下nfc的技術
這些都是可以做資料傳輸的,但是差異最大的還是展現在有效距離上了,這裡不能超過4cm
讀卡器模式(reader/witer mode)
仿真卡模式(card emulation mode)
點對點模式(p2p mode)
我們從某個支援nfc功能的媒介上讀取相關資料
這也是運用比較廣泛的,我們可以把手機刷公交,地鐵之類的 功能就是這個模式,其原理就是将相應ic卡中的資訊(支付憑證)封裝成資料包存儲起來,使用的時候nfc有個射頻器,有裝置靠近的時候,就會驗證,讀寫,并且進行相應的處理,比如開門,支付什麼的。
這個模式跟wifi熱點有點類似,距離很短,兩部裝置連接配接起來可以共享資料,傳輸速度非常的快,而且如果兩部手機都是android4.2,nfc傳輸會直接利用藍牙傳輸,這種技術稱為android beam ,是以使用android beam傳輸資料的兩部裝置不再局限性在4cm内了
圖檔借用了某網站哈
你開始寫你的nfc應用之前,必須了解不同類型的nfc标簽是很重要的,标簽排程系統如何解析nfc标簽和特殊的工作,當它檢測到ndef消息的标記排程系統一樣。nfc标簽來在廣泛的技術和還可以有許多不同的方式寫入到其中的資料。機器人具有用于ndef标準 ndef資料被封裝的消息(内部ndefmessage),其中包含一個或多個記錄(ndefrecord)。每個ndef記錄必須根據您要建立的記錄類型的規格良好的。android版 還支援其它類型的标簽不包含ndef的資料,您可以通過在使用類的工作android.nfc.tech包。要了解更多有關這些技術,請參閱進階nfc主題。這些其他類型的标簽工作包括編寫你自己的協定棧與标簽進行通信,是以,我們建議使用ndef在可能的情況,便于開發和最大支援android的供電裝置。 注意: 要下載下傳完整ndef的規格,請通路nfc論壇規範下載下傳網站,看到 建立常見類型的ndef記錄了如何建構ndef記錄的例子。 現在,你有nfc标簽的背景,下面的章節較長的描述了android的如何處理ndef格式化的标簽。當一個android裝置掃描包含ndef格式的資料的nfc标簽,它解析該消息并試圖找出資料的mime類型或辨別的uri。要做到這一點,系統讀取所述第一ndefrecord内側ndefmessage以确定如何解釋整個ndef消息(一個ndef消息可以有多個ndef記錄)。在一個結構良好的ndef消息,第一ndefrecord 包含以下字段:
訓示如何解釋可變長度類型字段
描述了記錄的類型。如果使用tnf_well_known,使用此字段指定記錄類型定義(rtd)
要讀取或寫入的實際資料的有效載荷。一個ndef消息可以包含多個ndef記錄,是以不承擔全部有效載荷在ndef消息的第一ndef紀錄。 标簽排程系統使用3-bit tnf (type name format)和類型字段來嘗試映射mime類型或uri的ndef消息。如果成功,它封裝了一個内部的資訊action_ndef_discovered與實際載荷一起意圖。不過,也有當标簽排程系統不能确定資料的基礎上,第一個ndef記錄中的類型的情況。這種情況發生在ndef資料不能被映射到一個mime類型或uri,或當nfc标簽不包含ndef資料開始。在這種情況下,一個标簽具有關于标簽的技術和有效載荷資訊對象被封裝一個的内部action_tech_discovered意圖代替。 表1描述了标簽排程系統如何tnf和類型字段映射到mime類型或uri的。它也描述了tnfs不能被映射到一個mime類型或uri。在這些情況下,标簽排程系統回落到 action_tech_discovered。 例如,如果标簽排程系統遇到類型的記錄tnf_absolute_uri,它映射該記錄成uri的可變長度類型字段。标簽排程系統封裝該uri在一個資料字段action_ndef_discovered意圖提供關于标簽的其他資訊,例如有效載荷沿。在另一方面,如果遇到類型的記錄tnf_unknown,它會建立一個封裝标簽的技術,而不是意圖。
當标簽排程系統做建立封裝nfc标簽和識别資訊的意圖,它發出的意圖,對于意圖過濾感興趣的應用程式。如果有多個應用程式可以處理的意圖,提出活動選配,以便使用者可以選擇的活動。标簽排程系統定義了三個意圖,這是在最高的順序列出來最低優先級:
action_ndef_discovered:此意圖是用來啟動一個活動時,它包含一個ndef淨荷标簽的掃描和是一個公認的類型。這是最高優先級的意圖,并且标簽排程系統嘗試盡可能任何其他意圖,之前啟動這一意圖的活動。
action_tech_discovered:如果沒有活動登記辦理
action_tag_discovered:如果沒有活動處理這一意圖開始-
action_ndef_discovered或action_tech_discovered 意圖。
标簽排程系統工作的基本方法如下:
嘗試啟動與由标簽排程系統解析nfc标簽(或時建立的意圖一個activity action_ndef_discovered或action_tech_discovered)。
如果這一意圖沒有活動過濾器,嘗試啟動下一個優先級最低的意圖(可以是活動action_tech_discovered或action_tag_discovered),直到意圖或直至标簽排程系統中的應用程式過濾器嘗試所有可能的目的。
如果沒有應用程式篩選任何意圖的,什麼也不做。
隻要有可能,以ndef消息和工作action_ndef_discovered意圖,因為它是最特定出的三個。此意向,您可以在比其他兩個意圖更适當的時間啟動應用程式,給使用者更好的體驗。