У меня есть приложение для Android, которое считывает теги NFC. На LG Nexus 4 все работает нормально, но на Samsung Galaxy S5 я получаю только исключения ввода-вывода (проверено на нескольких телефонах).
Итак, теги имеют тип NfcV, и я получаю исключение ввода-вывода при вызове connect()
на NfcV (далее это код ошибки -5 ERROR_CONNECT).
NFC TagInfo от NXP может считывать содержимое памяти тег на SG5S - есть ли другие способы чтения тегов NfcV, кроме connect()
и transceive()
?
Какие различия между чипами NFC могут привести к сбою подключения моего приложения на одном телефоне, но не на другом (в то время как другие приложения считывают его нормально)? Может быть, есть тайм-ауты, которые мне нужно настроить?
Фрагмент кода:
NfcV nfcvTag = NfcV.get(intent.getParcelableExtra(NfcAdapter.EXTRA_TAG));
if(nfcvTag!=null){
try {
nfcvTag.connect();
//{flags:0x00, read multiple blocks command: 0x23, start at block 0: 0x00, read 9 blocks (0 to 8): 0x08}
response = nfcvTag.transceive(new byte[] {(byte)0x00,(byte)0x23,(byte)0x00,byte)0x08});
} catch (IOException e) {
Log.d("NFCService", nfcvTag.toString());
} finally {
try {
nfcvTag.close();
} catch (IOException e) {
}
}
}
NfcV.get()
иnfcv.connect()
после получения намерения? Или между ними есть обработка/создание новых потоков и т.д.? Также просто для подтверждения: это методconnect()
вызывает исключение, а не методtransceive()
, верно? - person Michael Roland   schedule 23.05.2014connect()
не работает, когда это делается в IntentService, меня озадачивает. - person pfi   schedule 11.06.2014