Новый 2.3.3 SDK включает улучшенную поддержку NFC, и я хотел бы написать приложение, основанное на этом. В конечном счете, я хотел бы иметь возможность считывать данные из нескольких тегов, которые одновременно вводят поле, но Android только запускает первый, который входит в поле, - последующие игнорируются.
Из чтения спецификации NFC (ISO/IEC 14443-3) для тегов, которые я использую (Mifare Classic), я должен был бы отправить команду "halt" в тег, что приведет к прекращению ответа, и позвольте мне прочитать следующий тег в поле. Android не поддерживает команду halt непосредственно в любом из подклассов TagTechnology
, поэтому я попытался отправить ее непосредственно с помощью transceive(new byte[] {0x50, 0x00})
. Это выдает a IOException
, при этом сообщение "transceive failed".
По общему признанию, я делаю все это из основного потока, который я понимаю, это плохая идея, но я просто хочу как можно проще протестировать концепцию.
Возможно ли одновременно связываться с несколькими тегами в поле? Что я делаю неправильно?