2013/12/18

[nfc]HCEの動作確認をしたい (4)

さて、ちゃんとHCEの動作確認をするには、受け側がちゃんと動かないといかんだろうということはわかってきた。
めんどうだが、Starter KitとNFC HACKSを読みながらがんばるしかないか・・・。

 

が、ふと考えると、うちにはWindows8.1があった。
この子は、NFPをサポートしている(PaSoRi RC-S380持ってるし)。
ならば、かざせば動いてくれるんじゃないか??

気をよくしてつなげてみたのだが、Nexus7をかざしても、あのタグをかざしたときのような音が出ない。
うーむ・・・。

あ、NFPって、たしかNDEFしか反応せんやん。。。
HCEもカードエミュレーションだから、ソフト的にNDEF値を返さないと反応しないような気がする。


http://www.slideshare.net/hieroadgjmptw/hcetype4

こちらを参考にしながら、同じシーケンスでアクセスしに来るという前提で、決め決めのデータを返すアプリに仕立てた。
スライドのp.24で端末が返しているデータね。

やっぱり・・・そういうのは無謀よね。
要求するデータサイズなんかも違うだろうし、受信パケットを見ずにやるってのは、さすがにだめなようだ。

12-16 00:54:18.171: D/dalvikvm(1205): GC_CONCURRENT freed 377K, 20% free 10581K/13168K, paused 3ms+3ms, total 62ms
12-16 00:54:18.171: D/dalvikvm(1205): WAIT_FOR_CONCURRENT_GC blocked 28ms
12-16 00:54:20.443: D/BrcmNfcJni(1098): RoutingManager::stackCallback: event=0x18
12-16 00:54:20.443: D/HostEmulationManager(1098): notifyHostEmulationActivated
12-16 00:54:20.453: D/BrcmNfcJni(1098): RoutingManager::stackCallback: event=0x17
12-16 00:54:20.453: D/BrcmNfcJni(1098): RoutingManager::stackCallback: NFA_CE_DATA_EVT; h=0x302; data len=13
12-16 00:54:20.453: D/HostEmulationManager(1098): notifyHostEmulationData
12-16 00:54:20.453: D/HostEmulationManager(1098): Binding to service ComponentInfo{com.blogpost.hiro99ma.hcesample/com.blogpost.hiro99ma.hcesample.HostSampleService}
12-16 00:54:20.473: D/HostEmulationManager(1098): Waiting for new service.
12-16 00:54:20.473: D/HostEmulationManager(1098): Service bound
12-16 00:54:20.483: D/HostSampleService(19005): init
12-16 00:54:20.483: D/HostEmulationManager(1098): Sending data
12-16 00:54:20.483: D/HostEmulationManager(1098): notifyHostEmulationData
12-16 00:54:20.493: D/HostSampleService(19005): ccfile
12-16 00:54:20.493: D/HostEmulationManager(1098): Sending data
12-16 00:54:20.493: D/BrcmNfcJni(1098): RoutingManager::stackCallback: event=0x17
12-16 00:54:20.493: D/BrcmNfcJni(1098): RoutingManager::stackCallback: NFA_CE_DATA_EVT; h=0x302; data len=5
12-16 00:54:20.503: D/HostEmulationManager(1098): notifyHostEmulationData
12-16 00:54:20.503: D/HostSampleService(19005): reqdata
12-16 00:54:20.503: D/HostEmulationManager(1098): Sending data
12-16 00:54:25.047: D/BrcmNfcJni(1098): RoutingManager::stackCallback: event=0x19
12-16 00:54:25.047: D/HostEmulationManager(1098): notifyHostEmulationDeactivated
12-16 00:54:25.047: D/HostEmulationManager(1098): Unbinding from service ComponentInfo{com.blogpost.hiro99ma.hcesample/com.blogpost.hiro99ma.hcesample.HostSampleService}
12-16 00:54:25.057: E/BrcmNfcNfa(1098): UICC[0x0] is not activated

と思って、受信したバイト列をログに出すようにしたのだけど、シーケンスと同じだった。
シーケンス表の上から6行目の「(はい、これ~)」を送信しているところで、AndroidがDeactivateしている。

うーん、やっぱり、意味がわかってデータを送信していないので、なぜだめなのかがわからん。

0 件のコメント:

コメントを投稿

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

注: コメントを投稿できるのは、このブログのメンバーだけです。