NFC を使用して Android タブレットをデバイスに接続し、デバイスからデータを取得しようとしています。
私が試したこと
nfc_device_detection_1.01.pdf (第 4 章)で説明されているコマンドの送信
transceive()の Android Java doc には、
「アプリケーションは SoD (長さ) または EoD (CRC) をペイロードに追加してはなりません。自動的に計算されます」
したがって、CRC の有無にかかわらず、パケット データ長の有無にかかわらず試してみましたが、空白のままにしておくべきか、含めないべきかについて、ドキュメントは明確ではありません。
私が取った別のアプローチは、 format_sequence_guidelines_1.1.pdf (Sync Codeの後に Request が続く) の 2.2 章の図に従うことですが、結果は同じです。
問題
transceive() メソッドに引数として送信するコマンド (バイト) がわかりません。**
質問
誰か:
- NFCF通信の例はありますか?
- 使用すべきプロトコル/コマンドに関する詳細情報はありますか?
- コマンドに必要なバイトが NFC タグに含まれているかどうかを確認できますか?
コード
transceive() は、IO 例外「タグが失われました」をスローします。
これは、コマンド バイトが正しくないためだと思います (さまざまなコマンドを使用しました)。
最後の注意 (transceive() を while ループに入れて、毎回通信を閉じて接続するのにも疲れました)
String action = intent.getAction();
if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(action)) {
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
NfcF nfcf = NfcF.get(tag);
nfcf.connect();
byte[] command = new byte[] { (byte) 0x00, (byte) 0x00};
byte[] response = nfcf.transceive(command);
}
回答に追加情報が必要な場合はコメントしてください。ありがとうございました。