原创:木头月亮
来自:http://blog.youkuaiyun.com/mutouyueliang/archive/2011/03/01/6216108.aspx
Android NFC在Android版本从2.3升级到2.3.3发生了较大的变化,有点动骨动筋的苗头。NFC的极大应用场景包括:电子标签读(扫描),电子标签写,点对点数据通讯,智能卡(卡模拟)。目前从Android官方文档看,2.3版本实现了电子标签读的功能,2.3.3增加了电子标签写和点对点数据通讯的功能。希望这个2.3.3的用户编程结构(API)设计的相对完善一点,否则后续添加新功能后,API变动过大,应用开发人员常感到无所是从。
言归正传,谈Android 2.3.3 NFC的改动:
- 电子标签扫描的功能提升,不仅能读NFC Forum NDEF,而且能读其他格式的电子标签了,包括NFC-A,NFC-B,NFC-F ,NFC-V,ISO-DEP,Mifare Classic,Mifare Ultralight。
- 增加电子标签写的功能(write access to tag)。
- 增加点对点数据通讯功能(peer-to-peer communication)。
- 电子标签消息派发机制(消息在Android Framwork和用户应用间的传递)的改变
对应功能的增加和实现的改变,用户接口(NFC API)也做了相应改动:
- 增加Java包android.nfc.tech
- NfcAdapter派发的的Intent从原来的一个变成三个:
NDEF_DISCOVERED
,TECH_DISCOVERED和
TAG_DISCOVERED
- 增加Tag类,表示电子标签
- 增加TagTechnology,表示电子标签的类型,主要是指使用了那种行业标准
使用NFC API编写应用程序需要理解NFC的消息派发机制,包括消息的优先级处理
1. Foreground activity dispatch
A foreground activity that has called NfcAdapter.enableForegroundDispatch()
is given priority. See the documentation on NfcAdapter.enableForegroundDispatch()
for its usage.
2. NDEF d