IsoDep .connect выдает e=null

Это звучит странно, я знаю.

Я разрабатываю приложение для Android с использованием NFC, приложение считывает тег с самрт-карты с помощью команд IsoDep APDU, обычно все работает, но иногда происходит сбой, и в последующих исполнениях продолжаются сбои, когда это происходит при подключении тега, тег имеет значение «mConnectedValue = -1», что означает, что технология не подключена, но выполняется следующий код.

    card = IsoDep.get(tag);
    card.setTimeout(20000);
    card.connect();

connect () выдает исключение, исключение перехватывается этим кодом:

        } catch (IOException e) {
            ...
        }

Если "e" проверяется с помощью eclipse, показывает e=null, но код внутри catch выполняется, кто-нибудь может объяснить, почему e=null? Приведенный выше код находится внутри цикла, и последующие выполнения продолжают возвращать это «исключение» e=null.

Большое спасибо!


person Jachu    schedule 07.03.2013    source источник
comment
Звучит подозрительно. Показать использовать полный код.   -  person ThomasRS    schedule 08.03.2013


Ответы (1)


Исправлено, ну, на самом деле "e=null" все тот же, иногда выдает "IOException e = null", а иногда просто "e= null", в обоих случаях ошибка ловится одним и тем же кодом, это может быть какой-то ошибки.

Так же решил проблему с подключением, виноват был аппарат, чипу не хватило мощности подавать питание на смарткарту, на чтение и запись было нормально, но когда карта делает какие-то операции этого не достаточно, просто двигая телефон немного вверх решил проблему.

Спасибо!

person Jachu    schedule 08.03.2013