Я пишу Android-приложение для чтения External NFC.Используя следующую библиотеку и читатель.
https://www.acs.com.hk/en/products/3/acr122u-usb-nfc-reader/
https://www.acs.com.hk/download-driver-unified/11155/ACS-EVK-Android-115-A.zip
Вот код:
private class TransmitTask extends
AsyncTask<TransmitParams, Void, String> {
@Override
protected String doInBackground(TransmitParams... params) {
byte[] command = {(byte) 0xFF, (byte) 0xCA, (byte) 0x00, (byte) 0x00, (byte) 0x04};
byte[] response = new byte[16];
String hexID = "";
try {
mReader.power(params[0].slotNum, Reader.CARD_WARM_RESET);
mReader.setProtocol(params[0].slotNum, Reader.PROTOCOL_TX);
mReader.transmit(params[0].slotNum, command, command.length, response, response.length);
hexID = toHexString(response);
} catch (final Exception e) {
e.printStackTrace();
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(activity, "TransmitTask doInBackground : " + e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
return hexID;
}
}
Работает хорошо и читает NFCоткрытки.Но иногда появляется следующая ошибка:
CommunicationErrorException: Ошибка записи USB: -1
.(см. изображение)
Разрешается только при отключении и повторном подключении считывателя NFC (USB).Итак, как решить эту проблему, не отключая NFC.