[英]Apdu error while send TgInitAsTarget command to the PN532 (ACR122u)
[英]ACR122U - InvalidDeviceStateException when transmitting APDU
我下載了android ACS庫,並使用帶有otg電纜的ACR122U閱讀器在我的android設備上試用了示例代碼和ReaderTest應用。
我嘗試發送以下APDU命令-FF CA 00 00 00,但在以下代碼段的以下行中不斷遇到此異常:
// Transmit APDU
responseLength = mReader.transmit(params[0].slotNum,
command, command.length, response,
response.length);
例外:
com.acs.smartcard.InvalidDeviceStateException:當前狀態不等於特定狀態
我檢查過以確保所有傳遞給.transmit方法的元素都是正確的(slotNum,command,command.length等)。 只是無法弄清楚為什么會拋出該異常。
任何幫助將不勝感激 !
我設法找到了解決方案。 拋出此異常是因為需要執行一些我不太了解的初始化。 在NFC庫中找到該示例。 下面的代碼段中詳細介紹了這些步驟:
private void initalizeCard() throws ReaderException {
reader.power(0, Reader.CARD_WARM_RESET);
reader.setProtocol(0, Reader.PROTOCOL_T0 | Reader.PROTOCOL_T1);
byte[] sendBuffer={(byte)0xFF, (byte)0xCA, (byte)0x00, (byte)0x00, (byte)0x00};
byte[] recvBuffer=new byte[300];
reader.transmit(0, sendBuffer, sendBuffer.length, recvBuffer, recvBuffer.length);
}
您必須先執行熱重置---> set-protocol,然后apdu命令才能獲得正確的響應。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.