------- android培训、java培训、期待与您交流! ----------
以下仅为个人平时学习笔记,可能有有错误的地方,希望有看到者提出来,共同讨论,谢谢!
1、Intent发布系统指定了3个intent有不同的优先级。通常当一个tag被检测到之后,Intent就
被启动(start)了,这个启动遵循以下行为:(1)android.nfc.action.NDEF_DISCOVERED:这个intent是在一个包含NDEF负载的tag被检测
到时启动,这是最高优先级的intent,android系统不会让你指定一个Intent能处理所有的NFC数
据类型,你必须在AndroidManifest.xml中指定与NFC tag对应的元素,这样当扫描到的tag传过
来的数据类型与你定义的相匹配时,你的Activity就会被调用.如果NDEF_DISCOVERED intent
已经被启动,TECH_DISCOVERED和TAG_DISCOVERED intents将不会被启动.例如一个位置的tag
或者不包含NDEF负载的tag被检测到,此Intent就不会被启动.
(2)android.nfc.action.TECH_DISCOVERED:如果NDEF_DISCOVERED intent没启动或者没有
一个Activity的filter检测NDEF_DISCOVERED,并且此tag是已知的,那么此TECH_DISCOVERED
Intent将会启动.TECH_DISCOVERED intent要求你在一个资源文件(xml)里指定你要支持
technologies列表.
(3)android.nfc.aciton.TAG_DISCOVERED:如果没有一个Activity处理NDEF_DISCOVERED
and TECH_DISCOVERED intents或者tag被检测为未知的,那么此Intent将会被启动.
2、下面是一个资源文件需要用到的,定义了所有的technologies.可以根据需要删除掉不需要的
项,将此文件以任意名字+.xml保存到/res/xml文件夹.
(1)android.nfc.tech.IsoDep
(2)android.nfc.tech.NfcA
(3)android.nfc.tech.NfcB
(4)android.nfc.tech.NfcF
(5)android.nfc.tech.NfcV
(6)android.nfc.tech.Ndef
(7)android.nfc.tech.NdefFormatable
(8)android.nfc.tech.MirareClassic
(9)android.nfc.tech.MifareUltralight
你也可以指定多个tech-list集合,每个集合都人做独立的.如果任何单个tech-list集合是
getTechList()返回的technologies集合的子集,那么你的Activity将被认为匹配了.这个还提
供'与'和'或'操作.