USBスニファとして使い始めたFree Device Monitoring Studioだが、前回は「12分まで」と書いたが、もう1つ制約があった。
1日5セッションまで、という制限だ。
うーん・・・、この制限はちときつい。
いまはデバイスのつなぎ初めとかを見たいので、しょっちゅう入り切りしていたのだ。
かつ、タイミング悪いとPCがブルースクリーンになってしまい、再起動という・・・。
そんなわけで、USBPcapとWireSharkで進めることにした。
お仕事だったらツールを購入するところなのだけど、お遊びでやってることだし。
それに、キーボードのカスタマイズをするのと同じようなもので、どこでも同じ環境を作りやすい方が優先されてしまう。
まあ、場合によりけりってとこですかね。
初めまして。いつも投稿を興味深く読ませて頂いています。
返信削除個人的な興味からAndroidアプリでNFCの情報にアクセスしようと色々試しているのですが、
APDUコマンドを送る処理が全く動かず、途方に暮れています…。
失礼なお願いですが、もし可能であれば、
コードのどの辺に原因があるのかアドバイスを頂けないでしょうか。
ビルドできる一式のURLなどを教えていただければ、Nexus7でどんな感じかを見ることはできると思います。
削除ただ、Androidは詳しくないので、できる範囲で、ということになります。
また、今は仕事が忙しいので、早くても見るのは日曜日くらいになりそうです。
コメント返信ありがとうございます。
削除反応が遅くなってしまい申し訳ありません。
プログラムのコードよりも考え方・知識的な問題が大きいと思いますので、
一つ質問をさせて下さい。
現在、Nexus7(2013)でICカードをスキャンして一意のIDを取得しようとしています。
FeliCa(android.nfc.tech.NfcF)は問題なく一意のIDを取得できているのですが、
スマートフォンをNexus7でスキャンした際には、
(android.nfc.tech.IsoDep, android.nfc.tech.NfcA)
ランダムなIDが返ってきてしまい、一意ではないため困っています。
バイト先で使用していた出退勤管理のシステムでは、
ランダムなIDを返すスマートフォンでも個人を特定できていたので、
何らかの方法で一意な情報を取得できることは分かっているのですが、
全く検討がつかないため、もし何か思い当たることがあれば、
是非教えて頂ければ嬉しく思います。
スマートフォンをNexus7で読もうとすると、Android Beamの方が動きそうな気がします。
削除そうだった場合、通信中の相手が特定できればよいのと、通信が終わったら相手に覚えられていたくないのとで、IDはランダムにするだろうと思います。
以前見たときは、NFC-AとNFC-Fを短期間で切り替えて送信しながら通信相手を探していました。
肝心の、一意な情報を取得することについては、思いつきませんでした。
おサイフケータイに対応している端末であれば、R/WモードにしてNFC-Fで読めばIDmが取得できるんじゃないだろうか、という程度です。
Secure Elementが載っていない場合は、特定できるような情報を持っていないような気がします。
色々とコードを試していた所、
削除Android4.4から追加された [enableReaderMode] メソッドで、
FLAG_READER_NFC_Fのみを指定したときだけ、
スマートフォンをスキャンするとNfcFとして認識されることが分かりました。
この状態だと、IDmとPMmが取得できるので、この情報を利用できそうです。
しかし、FLAG_READER_NFC_Fを指定してしまうと、
その他の規格には全て反応しなくなってしまうので、(Mifare等)
どうにか上手いことフラグを切替える処理を行う必要がありそうです。
何度も質問申し訳ありませんが、
リーダにかざしたICカードを、複数回スキャンする方法などご存知ないでしょうか。
(一度目は普通にスキャンし、二度目にNfcF限定でスキャンしたいのです)
コードから任意のタイミングでスキャンする方法は存在しなさそうなので、
難しいのではないかとは思っていますが…。
細かいところは私もわかりませんが、enableReaderMode()を最初はNFC-Fで動かしてチェックし、だめだったらNFC-Aにする、ということはできないでしょうか。
削除私も似たようなことを考えたのですが、私の試した限りでは、
削除enableReaderModeで"読み取れなかったこと"を
判別する方法が見つけられなかったので、
別の方法を探したいと思います。
お忙しい中、アドバイスありがとうございました。
うーん、確かにそうですね。
削除では、両方をスキャンして、NFC-Fが取得できないならばNFC-Aと割り切る、というのもあるかもです。