Метка NFC может быть активной, если нет относительного движения считывателя метки?

Мы создаем приложение NFC, которое требует, чтобы тег NFC был прочитан один раз (мобильным устройством Android), затем данные отправляются на сервер, который их обрабатывает, а обработанные результаты отправляются обратно на устройство, которое записывает данные обратно в метка NFC.

Операции, выполняемые мобильным устройством (имеющим считыватель NFC):

  • читать данные из тега
  • отправить данные на сервер и дождаться результатов обработки
  • получить обработанные результаты
  • напишите результаты на теге

Проблема заключается в том, что когда затрачиваемое время превышает полминуты (из-за скорости сети и времени обработки на стороне сервера), четвертая операция (запись обработанных результатов обратно в тег) завершается сбоем.

Возможными причинами сбоя могут быть:

  • A: метка питается от движения метки в магнитном поле, создаваемом считывателем. К моменту завершения второй и третьей операций и попытки выполнения четвертой операции у тега больше нет питания.
  • B: в нашем коде есть ошибка, и объект чтения/тега должен быть заново создан для выполнения четвертой операции (мы сохраняем объекты чтения и тега в памяти, пока выполняются другие операции)

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

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

person pranshus    schedule 16.07.2016    source источник
comment
Что за библиотека (сторонняя)? Что вы видите в logcat?   -  person LaurentY    schedule 18.07.2016


Ответы (1)


Я бы разделил 4 шага на 3 группы.

1) прочитать тег
2) отправить данные на сервер и дождаться результатов обработки и получить обработанные результаты
3) записать результаты в тег

1) это взаимодействие с пользователем ("пожалуйста, коснитесь тега"),
2) происходит в фоновом режиме ("обработка данных") и
3) снова взаимодействие с пользователем, когда я прошу пользователя коснуться тег еще раз, как только данные вернутся с сервера («пожалуйста, коснитесь тега еще раз»).

Это помогает разделить шаги, время которых не определено (что, если телефон временно не подключен к данным? Также трудно ожидать, что пользователь будет постоянно держать устройство над меткой до тех пор, пока данные не вернутся.

person corvairjo    schedule 18.07.2016