TNF(Type Name Format)について
TNFは、NDEFがどのような種類かを表す値で、3 bit で表す
このTNFは、以下のように定義されている
0x00
空
定数はTNF_EMPTY
0x01
NFC forumで定められている既知のタイプ
定数はTNF_WELL_KNOWN
0x02
RFC2046で定義されたメディアタイプ
定数はTNF_MIME_MEDIA
0x03
RFC3986で定義された絶対URI
定数は、TNF_ABSOLUTE_URI
0x04
NFC forum外部タイプ
定数は、TNF_EXTERNAL_TYPE
0x05
不明
定数は、TNF_UNKNOWN
0x06
変更なし
定数は、TNF_UNCHANGED
0x07
予約済み
定数はない
NFC Recordの定数は
AndroidのNfcRecordクラスであらかじめ定義されている定数
TNFを使うときには、この定数を利用する
例えば、TNF_WELL_KNOWNなら
NdefRecord.TNF_WELL_KNOWN
とすることで、この値へアクセスできる
特に重要なのは、0x01 0x02の値
まず、0x01
NFC forum well known type
について
これは、NFC Forum RTD仕様に定義されているRTD type name formatに沿う値がtypeに含まれることを表す
次に、0x02
media type について
これは、RFC2046により定義されているmedia typeに沿う値がtypeに含まれることを表す
RFC、つまり
Request For Comments
これは、さまざまな技術仕様が定められている仕様書のこと
これらの中に media typeの定義がされていて
media typeのTNFを使うには
これらの仕様に則ったPayloadでないとだめ
media typeは、例えば
PNG画像ならimage/png
連絡先データなら
text/x-vcard
また、NFC Forum RTD(Record Type Definition)は
NFC Forumが定義した仕様で
TNFが 0x01 もしくは 0x04 のときには
この仕様に沿った NDEF recordにする必要がある
NDEF recordを作る場合、多くの場合は
0x01 0x02のいずれかを使うことになる