天天看點

Android NFC開發(二)——Android世界裡的NFC所具備的條件以及使用方法Android NFC開發(二)——Android世界裡的NFC所具備的條件以及使用方法

真要說起來,nfc在android上,也是從api9才開始支援的,但是到了api14 google才對nfc大力開發,是以等到了api15的時候,nfc的傳輸速度就得到了很大的加強
如果你有支援nfc的手機,你打開後蓋,你看看到一塊薄薄的東西,這就是nfc标,标簽的種類也是種類繁多,功能野人參參不齊,有的隻能讀寫,有的卻能上天,而在android sdk 中定義的nfc标準被稱為ndef(資料交換格式)
android sdk中有三種ndef資料的操作

從nfc便簽讀取ndef格式的資料

向nfc标簽寫入ndef格式的資料

通過android beam技術将ndef資料發送到另一部nfc裝置

上篇也簡單的說了這個機制 不管原生的如何支援,就像android一樣,依舊有一個獨特的要求,比如我們存儲的資料需要任意的,這就要我們自己定義資料,這也叫做非ndef資料,這些資料其實就是普通的位元組流罷了
兩個終端裝置要想讀寫資料,會有個短暫配對的時間,資料接收端會根據具體的資料格式和标簽類型調用相應的activity(tag dispatch),這個activity需要定義一個intent filter中指定不同的過濾機制,分三個等級,是以叫nfc的三重過濾機制

ndef_discovered

隻過濾固定格式的ndef資料,比如純文字,指定協定(http ftp smb等)的uri

tech_discovered

當action_ndef_discovered指定的過濾機制無法比對tag時,就會使用這種過濾機制進行比對,這種過濾機制并不是通過tag的資料進行比對的,而是根據tag支援的資料存儲格式進行比對,是以這種機制使用範圍很廣

tag_discovered

如果将nfc的過濾機制看成if….else…if….語句的話,那麼這種機制相當于else語句,前面兩種都失敗了之後,就會用這個來處理了,這種機制用來處理未識别的tag
從這裡不難看出,nfc的三重過濾機制,如果都不能比對tag,則什麼都不做,這裡有個圖,實際上上篇結尾的時候我也提到過,隻是沒講這麼細
Android NFC開發(二)——Android世界裡的NFC所具備的條件以及使用方法Android NFC開發(二)——Android世界裡的NFC所具備的條件以及使用方法
這裡指定一個執行個體
Android NFC開發(二)——Android世界裡的NFC所具備的條件以及使用方法Android NFC開發(二)——Android世界裡的NFC所具備的條件以及使用方法
tag要調用的一個activity,而且指定機制和資料類型
當我們了解了這些基本的知識之後,我們就可以編寫nfc的軟體了,準備一部有nfc功能的手機,然後等待我們的下一篇

繼續閱讀