天天看点

android nfc中Ndef格式的读写

检测到标签后在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信息结构

android nfc中Ndef格式的读写

ndefrecord中的常用方法

1.可通过ndefrecord.gettnf()方法来获得tnf字段;

2.通过ndefrecord.gettype()方法来获得rtd字段,当tnf为tnf_well_known时的rtd。

3.通过ndefrecord.getpayload()方法来获得实际读写的数据。

ndef文本格式

ndefmessage中的paylaod就是实际的数据,其中ndef文本格式为:

android nfc中Ndef格式的读写

ndef uri格式

1、ndefmessage中的paylaod就是实际的数据,其中ndef文本格式为:

android nfc中Ndef格式的读写

2、前缀需要查表解析

例子程序:

readwritetextmainactivity:

inputtextactivity:

shownfctagcontentactivity:

textrecord:

androidmanifest.xml: