Felicaのデータを読む (その2)

昨日からいろいろ調べて分かったこと。

    • Nexus SのNFC 機能は基本的には「NFC Reader/Writer」であること※1
    • NFC はFerica等のアプリケーション層の下位のプロトコルを定義していること※2
    • 現在公開されているAndroidAPIは"NDEF"だけを想定している※3
    • Felicaを扱うためのAPIは公開されていない

ならばFelicaは読めないのか? 否。既にデータブロックの取り出しに成功している方々がいるので明らかだが、より抽象度の低いAPI(場合によってはJNI)や非公開のAPIを使うことで読みだすことができるのだろう。

従って、以降はFelicaのプロトコル、データフォーマットを理解することに時間を割くことにする。


※1:これが一番誤解しやすい所ではないだろうか。NFC機能を実装しているからといって日本の携帯電話のようにFerica等の非接触型ICチップを内蔵している訳ではないので、自身がNFCの搬送波に反応して発振する訳ではない、つまりいわゆる「お財布携帯」にはなれないということだ。(ただし、それをエミュレートしたインテントを飛ばすことができるため、インテント同士で通信ができる相手(Android端末)であれば反応できるようになることが考えられる)

※2:ということはNFCをベースにしているMifare、Ferica等すべてのデータを読み出せるはずだ

※3:NDEFとは(NFC Data Exchange Format)のアクロニム。NFCを使ってデータをやりとりする汎用のフォーマット。つまりはNDEFに準拠していない電文に関しては公開されているAPIだけでは扱えないということだ