Как разрешить Android Внешняя связь NFCErrorException - PullRequest
0 голосов
/ 23 сентября 2019

Я пишу 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.

enter image description here

1 Ответ

0 голосов
/ 23 сентября 2019

Скорее всего, вы не закрываете соединение с устройством, когда закончите читать, создавая новое, которое перекрывает предыдущее.

Если вы используете службу для сохранения ссылки на читателя, то онаВозможно, что служба прервана, когда соединение все еще установлено, и когда вы создаете новый экземпляр устройства чтения, вы получаете исключение, так как это устройство уже используется.

...