Изменение времени ожидания NfcA в Android - PullRequest
1 голос
/ 29 июля 2011

Мне было интересно, как изменить продолжительность тайм-аута для получения ответа от карты типа NfcA в Android.Я видел, как изменить его на карте типа Iso-Dep, но не на карте типа NfcA.Кроме того, кто-нибудь знает, как долго тайм-аут для карты NfcA?Я использую пользовательскую карточку и хочу узнать, сколько времени у меня есть на карточке, прежде чем отвечать.

Ответы [ 2 ]

0 голосов
/ 12 апреля 2012

Начиная с уровня API 14, также существует setTimeout () для NfcA. До этого уровня API время ожидания фиксировано и составляет около 300 мс.

0 голосов
/ 30 июля 2011
  1. NfcA - это просто подтип IsoDep, поэтому тайм-аут IsoDep будет работать для NfcA и NfcB.

  2. NFC-Stack должен согласовать подходящие значения тайм-аута с тегом и использовать его.Однако, если вы подключаетесь к смарт-карте, в которой есть приложения, превышающие временные ограничения (Предупреждение: предупреждение о плохом программировании!), Может потребоваться увеличение времени ожидания, чтобы все заработало.

В этом случае используйте команду IsoDep и увеличьте время ожидания.

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

Еще одна вещь: Судя по API Android, похоже, что у вас есть полный контроль над значением времени ожидания.Это неправда!Если вы выйдете за пределы, разрешенные протоколами высокого уровня, вы столкнетесь с большим количеством неприятностей.В этом случае вы можете ожидать чего угодно от ненадежной функциональности до полного сбоя NFC-подсистемы.(Просто говорю ..)

...