Мы создаем приложение NFC, которое требует, чтобы тег NFC был прочитан один раз (мобильным устройством Android), затем данные отправляются на сервер, который их обрабатывает, а обработанные результаты отправляются обратно на устройство, которое записывает данные обратно в метка NFC.
Операции, выполняемые мобильным устройством (имеющим считыватель NFC):
- читать данные из тега
- отправить данные на сервер и дождаться результатов обработки
- получить обработанные результаты
- напишите результаты на теге
Проблема заключается в том, что когда затрачиваемое время превышает полминуты (из-за скорости сети и времени обработки на стороне сервера), четвертая операция (запись обработанных результатов обратно в тег) завершается сбоем.
Возможными причинами сбоя могут быть:
- A: метка питается от движения метки в магнитном поле, создаваемом считывателем. К моменту завершения второй и третьей операций и попытки выполнения четвертой операции у тега больше нет питания.
- B: в нашем коде есть ошибка, и объект чтения/тега должен быть заново создан для выполнения четвертой операции (мы сохраняем объекты чтения и тега в памяти, пока выполняются другие операции)
Код/библиотека (для взаимодействия с тегом), используемые в нашем приложении для Android, предоставлены третьей стороной. Мои знания о NFC (и библиотеке ndef для Android) ограничены. то, что я ищу в качестве помощи от сообщества (если у кого-то есть опыт в вышеуказанных ситуациях), это следующее
- если вышеуказанное происходит из-за B. Мы попытаемся выяснить то же самое. (Или обратитесь к стороннему поставщику, чтобы предложить решение)
- вместо этого, если причина сбоя четвертого шага связана с A, наша отладка стороннего кода бесполезна. (По сути, нам нужно изменить процесс так, чтобы приложение предлагало пользователю нажать на тег еще раз, прежде чем произойдет четвертый шаг)