呼び出しが大変
新しいプロジェクト立ち上げの度に、毎回API呼び出し手順にしたがって呼び出すのも、なかなかめんどうです。またこのSDKでは各NFCデバイス(NFC-A,NFC-B,NFC-F)の検出までは共通化できますが、そこからのコマンド発行については個別に実装していかなければなりません。
ライブラリ化してより簡単にNFCデバイスにアクセスできるようにします。
要件
- NFCデバイスを検知するとイベントが発生する。
- どのNFCデバイスを検出するか選択できるようにする。
- 各NFCデバイスで異なるイベントを発生させる。
- SDK for NFCのログ出力フラグを持つ。
- AndroidのNFC APIのようにNFCデバイスを意識しなくてもNDEFを書き込めるようにする
- ポーリング開始と停止を任意のタイミングで行える。
基本設計
- Windowメッセージで飛んでくるので、Formを拡張する形で進める。
- SDK for NFC Wrapper Library(仮)を使う場合は、そのFormを継承して使う。
- 検出するNFCデバイスの指定はポーリングの開始時に指定する。
- できるだけ現在の方法より分かりやすい方法に…。
- ログ出力フラグについてはconfigファイルに定義する。
ドロップ
要件を大きく広げてしまったが、”NFCデバイスを意識しなくてもNDEFを書き込めるようにする”という項目は各デバイスのコマンドを実装しなければならないため、大きく工数がとられてしまいます。とりあえず今回はその部分以外を実装したいと思います。
ソースコード
bs-nfc/SDK-for-NFC-Wrapper-Library · GitHubhttps://github.com/bs-nfc/SDK-for-NFC-Wrapper-Library
解説
基本的には先日書いたSDK for NFCライブラリの使い方と同じです。Formのイベントとして発行するために、イベント引数と定義したり、イベントを発行する処理を書いたりしています。
使い方
- ライブラリ参照設定に追加する
- Formを継承しているところを、NFCForm継承に変更する
- フォームのデザインモード画面を開き、プロパティからイベントを追加する
- StartPollingを書く # ここで検出するNFCデバイスを引数に指定する
- NFC検出イベントはDiscoverNFC~という名前です。
- イベントには各構造体に入ったNFCデバイスの情報が引数で渡されますので、それぞれ処理をします。
サンプル
SDK for NFC Wrapper Libraryを使用したSampleProjectを含めました。以前のコードよりだいぶすっきりしました。
カスタマー開発部 山下智樹
記載されている会社名、および商品名等は、各社の商標または登録商標です。
0 コメント:
コメントを投稿