检测到标签后在activity中的处理流程
1. 在oncreate()中获取nfcadapter对象;
nfcadapter nfcadapter = nfcadapter.getdefaultadapter(this);
2.在onnewintent()中获取tag对象或者ndefmessage信息;
获取tag对象:
tag tag = intent.getparcelableexra(nfcadapter.extra_tag);
获取ndefmessage信息:
parcelable[] rawmsgs = getintent().getparcelablearrayextra(nfcadapter.extra_ndef_messages)
3.也可以通过tag创建ndef对象等,以实现标签的属性和i/o操作。
ndef ndef = ndef.get(tag);
ndef格式标签的读取流程
2.在onnewintent()中判断是否为ndef格式标签(action_ndef_discovered),若是则获取ndefmessage
信息;(需要强制转换成ndefmessage对象)
3.对ndefmessage对象进行解析,获取相关的文本信息或uri等。
ndef格式标签的写入流程
2.在onnewintent()中获取tag对象;
3.通过tag创建ndef对象;
4.将文本等数据封装成ndefmessage;
5.判断是否为ndef格式标签,
若是ndef格式:
(1)允许进行标签操作:ndef.connect();
(2) 调用ndef.writendefmessage(ndefmessage)方法写入。
若非ndef格式:
(1)ndeffromatable format = ndeffromatable.get();
(2)允许进行标签操作:format.connect();
(3)调用format.format(ndefmessage)方法写入。
ndefmessage信息结构

ndefrecord中的常用方法
1.可通过ndefrecord.gettnf()方法来获得tnf字段;
2.通过ndefrecord.gettype()方法来获得rtd字段,当tnf为tnf_well_known时的rtd。
3.通过ndefrecord.getpayload()方法来获得实际读写的数据。
ndef文本格式
ndefmessage中的paylaod就是实际的数据,其中ndef文本格式为:
ndef uri格式
1、ndefmessage中的paylaod就是实际的数据,其中ndef文本格式为:
2、前缀需要查表解析
例子程序:
readwritetextmainactivity:
inputtextactivity:
shownfctagcontentactivity:
textrecord:
androidmanifest.xml: