Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android近場通信---高級NFC(一)

Android近場通信---高級NFC(一)

編輯:關於Android編程

本文介紹一些高級的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));

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved