天天看點

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: