ここ数日試しているNDEFのデータがある。
私の手動解析では、問題ない。
nfcpy解析でも、問題ない。
では、Android側か?
そんなわけで、今回は別のツールを使うことにした。
こういうときは、SonyさんのNDEF Writerだ。
Androidでは、NDEFペイロードのパースはアプリがやることになっている、と先生がいっておられた。
であれば、今回の現象は私が作ったNDEFデータだけでなく、他のでも発生するはずだ。
NDEF WriterはSmartPosterのNDEFを作るWindowsアプリ(というか、AIRアプリか)。
これで、じりじりと試す。
FeliCa Liteで試したところ、NDEFメッセージ長(Type 3 TagのLn値)が112byteまではOK、113~127byteまでNG、128byteはOKとなった。
NDEFパーサのバグなら、Type2 Tagでも発生するだろう。
FeliCa Liteだけで発生するなら、Type3 Tagのヘッダ解析にバグがあるのか。
Nexus7などで発生してNexus10で発生しないなら、libnfc-nxpが持つバグってことになるんじゃなかろうか(たしかNexus10は、Broadcomだったかと)。
Type3 TagのLnは3byteのビッグエンディアンデータ。
だから、読んだときは自分でint値か何かに変換しているのだろう。
112 0x70 0111_0000 OK
113 0x71 0111_0001 NG
114 0x72 0111_0010 NG
・・・
126 0x7E 0111_1110 NG
127 0x7F 0111_1111 NG
128 0x80 1000_0000 OK
Javaは確かunsignedがないから、そこら辺でミスがあるのでは・・・と思ったが、よくわからんかった。
今日はもう眠たいし、明日は飲み会があるので頭が回らないだろうから、あとは他の人にお任せしよう・・・。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。