2012/05/27

Androidはポーリング周期後にカードエミュレーションするのか

昨日の勉強会で、Androidでは250msごとに搬送波が出ている、というオシロスコープを使った報告があった。

この辺ってどうなってるんだっけ、と思って調べる。


深く追わずに、25、というキーワードで検索。

packages/apps/Nfc/jni/com_android_nfc_NativeNfcManager.cpp

ここに「Polling Loop」というコメントがあり、ひっかかった。
コメント通りなら、250msごとに搬送波を出すが、出し終わったらカードエミュレーションモードになるらしい。

ほほぅ。
確かにこうすれば、Android Beamのためにターゲットにならんといかんという部分が解決できる。

もう少し下のソースに、「Enable CEA detection mechanism」って書いてあるが、これは「Card Emulation A」の略みたいだ。
Type-Aのエミュレーションってことかね。

少し上には「RF Level Detector」って書いてあるので、搬送波検知のRSSIレベルをここで設定して、割込が発生するようになるのかも。

 

しかし1つ疑問が。
同じタイミングで同じ設定のAndroid端末を2台起動すると、同じタイミングでポーリングしてしまって検出できなくなるんじゃないの?と思ったのだ。
ちょっとでも違えば、たぶん搬送波検知機能が動作するんだろうけど、まったく同じタイミングだったらどうしようもあるまい。

なにか手は打ってあるんだろうと思うが、意外と忘れてたりして。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。