Android近場通訊 高階NFC(一)

2021-06-26 07:54:21 字數 2171 閱讀 2667

**:

本文譯自:

本文介紹一些高階的nfc專題,如多樣的nfc標籤技術、編寫nfc標籤、以及前台排程,前台排程允許在前台的應用程式優先排程intent事件,即使還有其他的過濾同樣的intent事件的應用程式存在。

android所支援的nfc標籤技術

在使用nfc標籤和android裝置來進行工作的時候,使用的讀寫nfc標籤上資料的主要格式是ndef。當裝置掃瞄到帶有ndef的資料時,android會提供對訊息解析的支援,並在可能的時候,會以ndefmessage物件的形式來傳送它。但是,有些情況下,裝置掃瞄到的nfc標籤沒有包含ndef資料,或者該ndef資料沒有被對映到mime型別或uri。在這些情況下,你需要開啟跟nfc標籤的通訊,並用自己的協議(原始的位元組形式)來讀寫它。android用android.nfc.tech包提供了對這些情況的一般性支援,這個包在下表1中介紹。你能夠使用gettechlist()方法來判斷nfc標籤所支援的的技術,並且用android.nfc.tech提供的乙個類來建立對應的tagtechnology物件。

表1.nfc標籤所支援的技術

介紹

tagtechnology

所有的nfc標籤技術類必須實現的介面。

nfca

提供對nfc-a(iso 14443-3a)屬性和i/o操作的訪問。

nfcb

提供對nfc-b(iso 14443-3b)屬性和i/o操作的訪問。

nfcf

提供對nfc-f(iso 6319-4)屬性和i/o操作的訪問。

nfcv

提供對nfc-v(iso 15693)屬性和i/o操作的訪問。

isodep

提供對nfc-a(iso 14443-4)屬性和i/o操作的訪問。

ndef

提供對ndef格式的nfc標籤上的ndef資料和操作的訪問。

ndefformatable

提供了對可以被ndef格式化的nfc標籤的格式化操作。

表2.可選的nfc標籤所支援的技術

介紹

mifareclassic

如果android裝置支援mifare,那麼它提供了對經典的mifare型別標籤屬性和i/o操作的訪問。

mifareultralight

如果android裝置支援mifare,那麼它提供了對超薄的mifare型別標籤屬性和i/o操作的訪問。

nfc標籤和action_tech_discovered型別的intent協同工作

當裝置掃瞄到帶有ndef資料的nfc標籤,但卻不能對映到mime或uri時,nfc標籤排程系統就嘗試使用action_tech_discovered型別的intent來啟動乙個activity。在被掃瞄到的nfc標籤上沒有ndef資料時,也會使用action_tech_discovered型別的intent。有了這種回退機制,如果排程系統不能夠幫你解析資料,那麼你就可以直接使用nfc標籤上資料來工作。基本步驟如下:

1. 給你希望處理的nfc標籤指定action_tech_discovered型別的intent過濾器。更多資訊請看「nfc的intent過濾」。通常,在ndef訊息不能被對映到mime型別或uri時,或者被掃瞄到的nfc標籤不包含ndef資料時,nfc標籤排程系統會嘗試啟動乙個action_tech_discovered型別的intent。更多資訊,請看「nfc標籤排程系統」。

2. 應用程式接收到intent物件時,從該intent物件中獲取tag物件:

tag tagfromintent = intent.getparcelableextra(nfcadapter.extra_tag);

3. 通過呼叫android.nfc.tech包中對應類的乙個get工廠方法,來獲取乙個tagtechnology物件例項。在呼叫get工廠方法之前,通過呼叫gettechlist()方法來列舉nfc標籤所支援的技術。例如,用下列方法從tag物件中獲取mifareultralight物件例項:

mifareultralight

.get

(intent

.getparcelableextra

(nfcadapter

.extra_tag

));

Android近場通訊 NFC基礎(二)

應用程式如何排程nfc標籤 當標籤排程系統完成對nfc標籤和它的標識資訊封裝的intent物件的建立時,它會把該intent物件傳送給感興趣的應用程式。如果有多個應用程式能夠處理該intent物件,就會顯示activity選擇器,讓使用者選擇activity。標籤排程系統定義了三種intent物件,...

Android近場通訊 NFC基礎(四)

從intent中獲取資訊 如果因為nfc的intent而啟動乙個activity,那麼你就能夠從intent中獲取被掃瞄到的nfc標籤的相關資訊。根據被掃瞄到的標籤,intent物件能夠以下額外的資訊 1.extra tag 必須的 它是乙個代表了被掃瞄到的標籤的 tag物件 2.extra nde...

NFC近場通訊,NFC列印開發

在進行nfc列印時我們先要了解印表機的屬性,本文中印表機以exp342為標準進行編寫整合技術文件。exp342的部分設定請參考該產品的使用說明書。我們在進行android整合開發時需要注意印表機的黑標感應點的位置,確定列印紙張黑標是否完全覆蓋印表機黑標感應點,如果未完全覆蓋將會導致列印紙不能走到你預...