NFC相關學習------第一篇

NFC的基礎知識


一、前言                                                                                             

            在現如今的生活中,NFC已經遍佈了我們生活的很多方面,我們的很多工具以及生活方式都離不開NFC。比如最常用的公交卡,現在逐漸流行的手機刷公交卡、各種接觸式的卡片均使用了NFC的技術。還有一些接觸式的工具,比如手機貼近一張卡片便可以自動鏈接上WiFi、手機閃付等。因爲NFC的有效距離最遠爲4CM,其安全性高,又方便。由於其成本不高,而安全性卻很強加上方便,故多使用於和支付相關的生活中。

二、NFC簡介                                                                                      

           什麼是NFC呢,深了說就是一堆協議,說的通俗點就是近距離自動識別鏈接傳輸數據包。生活中很多情況下,只需要把手機貼在某個物品或工具上就可以獲取或發送信息,這種方式就是使用了NFC。NFC的識別傳輸信息的距離特別短,只有4cm之內纔是有效距離。

三、NFC三種工作模式                                                                        

1)R/W模式

          R/W模式也就是讀寫模式,即最常用的從一個NFC TAG中讀取或寫入信息。該模式下只能由NFC device 向 NFC TAG中進行寫入或讀取操作,而並不能反着來。在R/W模式中的核心就是NFC TAG的操作,即如何識別TAG,根據不同的TAG進行不同的操作。在Google 的 Android 系統中有兩個專門對NFC TAG進行分類,分派給不同activity進行操作處理的系統。他們就是TAG分發系統和前臺分發系統。

【NFC TAG分發系統】

         mobile NFC control識別一個NFC TAG時,會首先分析這個TAG裏的內容。

  • 當TAG 裏的內容符合Android 數據類型標準時(也就是URI或MIME兩種類型),那麼NFC系統模塊會將ACTION_NDEF_DISCOVERD 通知 和 該TAG對象一起裝入一個Intent中發送給對ACTION_NDEF_DISCOVERD感興趣的activity。如果沒有找到對該通知感興趣的activity,那麼會重新將ACTION_TECH_DISCOVERD 和 該TAG對象一起裝入一個Intent中發送給對 ACTION_TECH_DISCOVERD 感興趣的activity。如果還是沒找到,那麼會再次重新將ACTION_TAG_DISCOVERD 和該TAG對象一起裝入Intent中發送給對ACTION_TAG_DISCOVERD 感興趣的activity。
  • 當TAG裏的內容不符合Android數據類型標準時,那麼NFC 系統模塊會直接將ACTION_TECH_DISCOVERD 和該TAG 對象裝入到一個Intent中然後發送給對ACTION_TECH_DISCOVERD感興趣的activity。如果沒找到,那麼會再次重新將ACTION_TAG_DISCOVERD 和該TAG對象一起裝入Intent中發送給對ACTION_TAG_DISCOVERD 感興趣的activity。

【前臺分發系統 和  TAG分發系統的區別】

  • 前臺分發系統只會在當前活躍的activity(當前顯示的activity)中查詢,查詢是否該activity對該通知感興趣。如果配置了相應的filter即感興趣,那麼會將對應的TAG對象發給該activity。在該activity到後臺運行的時候他需要取消前臺分發功能,因爲它不再是前臺activity。
  •  TAG分發系統中,只要activity在AndroidManifest中配置了filter對該通知感興趣,那麼就會啓動該activity,然後將TAG對象發給它。

2)P2P模式

        使用NFC devices對NFC TAG的操作是R/W模式,那麼兩個NFC devices之間通信怎麼辦呢?此時就要用到P2P模式了。

        P2P模式是用來爲兩個NFC devices之間進行NFC通信的。P2P模式簡單的來說就是在發送端對兩個函數的操作:

  •  setNdefPushMessageCallback:設置一個回調對象,如果該對象不爲空,那麼當前ACtivity

    會調用Android beam(Android 4.0以上纔有)來發送所要發的內容。該函數作用是:兩個設備

    在NFC有效的範圍內時,系統會彈出數據發送通知框。如果用戶選擇本機發送數據,則NFC模塊回調

    對象會獲取需要發送的數據。
  •    setOnNdefPushCompleteCallback:當數據發送完畢後通知回調對象。當數據發送完畢後,

    系統會調用該回調對象的函數。

      P2P模式涉及到很多協議,例如 SNEP、LLCP等協議,這些協議以後討論。

3)CE模式

        如果想將NFC Devices作爲一個NFC TAG被使用,那麼就需要用到CE模式了。生活中常講的閃付也是這個道理。在上層操作NFC的CE模式,需要加載nfc_extras.jar包,然後纔可以具體操作。這些後續會詳細說明。




注:本文純手打,文中有不對之處,請指出,謝謝。
博主原創,轉載請標明出處,謝謝。






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章