2012/12/08

[win8]NDEFは、NFP > PC/SC、のようだ

Windows + RC-S380で、PC/SCを使ってみた。

といっても、PC/SC自体が初めてなので、SDK for NFC Starter Kit2.0に入っていたサンプルソースと、こちらのサイトを参考に勉強している。

EternalWindowsセキュリティ/スマートカード

サンプルソースは、Visual Studio 2012 Express for Desktop(長い・・・)でビルドできた。
が、実行中にAPIエラーが出る。。
RC-S380を見つけることはできるのだが、カード情報を読み取ることができない。

かざしているカードは、手元にあったFeliCa Lite。NDEFだ。
まさか・・・と、NDEFじゃないカードをかざすと読み取ることができた。

SONYさんのNDEF Writerもそうだし、FeliCaランチャーもそうだが、デスクトップ側だったとしてもNDEFについてはNFPが最優先になる、という動作は変わらないようだ。
それをやめるには、NFPを無効にするしかないそうだ。


今わかっている範囲では、Windows8 + RC-S380でのNFC開発はこんな選択になると思っている。

  • NDEF・・・NFPのみ
  • 非NDEF・・・PC/SC、SDK for NFCなど

NDEF以外のカードをNFP APIでアクセスできるかどうかがまだわかっていないが、検出イベントが上がってこないので使えないのではないかと思っている。

NDEFフォーマットさせるアプリを作りたいのであれば、PC/SCなどでやることになるのだろうが、ストアアプリからPC/SCは使えるんだろうか?


やってみたが、だめだ。
何がだめかというと、includeするwinscard.hを全部読んでくれていなくて、必要な構造体定義なんかがされないのだ。
ヘッダファイル(C:\Program Files\Windows Kits\8.0\Include\um\winscard.h)を見ると、

#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

というのが最初に入っていて、最後まで囲まれていた。
MSDNブログに、こんな説明があるので、デスクトップアプリでしか使えないということか。。。

 

NFPで非NDEFカードに読み書きできるか、というところを調べるしかないですな。

0 件のコメント:

コメントを投稿

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