Android近距離無線通訊---進階NFC(一)

來源:互聯網
上載者:User

本文介紹一些進階的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包中對應類的一個getFactory 方法,來擷取一個TagTechnology對象執行個體。在調用getFactory 方法之前,通過調用getTechList()方法來枚舉NFC標籤所支援的技術。例如,用下列方法從Tag對象中擷取MifareUltralight對象執行個體:

MifareUltralight.get(intent.getParcelableExtra(NfcAdapter.EXTRA_TAG));

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.