NFCタグのバイナリ情報を読み取るためのアプリを作成しています。ここではNFC意図ハンドラ関数のコードは次のとおりです。Android NfcV get informationコマンドは1バイトしか返しません
protected void onNewIntent(@NonNull Intent intent)
{
try
{
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
NfcV nfcV = NfcV.get(tag);
byte[] cmdInfo = new byte[]{(byte) 0x02, (byte) 0x2b}; // 'Get info' command
byte[] answer = nfcV.transceive(cmdInfo); // Read info from tag.
...
}
catch(IOException e)
{
...
}
}
私はサムスンS3ネオにNFCタグを読んで、この機能を実行すると、すべてが答え変数が期待されるデータで満たされ、正常に動作します:
00 04 4B A0 14 01 00 A0 07 E0 F3 07
Howewer私はHuawei社P8liteに同じNFCタグを読んで、同じ機能を実行する場合、応答変数は1バイトのみで満たされます。エラーの場合は
03
、ISO 1569 3-3標準は、私が何かを受け取るべきであると言います。
01 03
Ie.少なくとも2バイト。ここで2番目のバイトはエラーコードです。だから私が実際に得ている答えは理論的に不可能です。
私は間違っていますか?それはモバイルハードウェアに依存しますか?それをどうやって修正することができますか?
コマンドのアドレス指定されたバージョンを使用すると、問題が解決しました。どうもありがとうございました! – Carlo
@CarloCe Data_rate_flagの設定を変更しましたか?それは、他のSO読者が両方のオプションがP8liteでサポートされているかどうかを知ることは興味深いかもしれません... –
私はアドレス指定されたコマンドを使用する場合、それはdata_rateの設定と解除の両方を受け入れます – Carlo