Чтение тега из плагина Ionic NFC дает различную информацию, чем если я использую считыватель

Я думаю, что в этом разделе учебника Generics объясняется ситуация (мой акцент):

«Вам нужно убедиться, что общий API не является чрезмерно ограничительным, он должен продолжаться для поддержки первоначального контракта API. Рассмотрим еще несколько примеров из java.util.Collection. Пред-общий API выглядит так:

interface Collection { 
  public boolean containsAll(Collection c);
  ...
}

Наивная попытка его генерировать:

interface Collection<E> { 
  public boolean containsAll(Collection<E> c);
  ...
}

Хотя это, безусловно, безопасный тип, он не соответствует оригинальному контракту API. Метод containsAll () работает с любым входящим набором. Он будет успешным только в том случае, если входящая коллекция действительно содержит только экземпляры из E, но:

  • Статический тип входящей коллекции может отличаться, возможно, потому, что вызывающий объект не знает точный тип передаваемой коллекции или, возможно, потому, что это коллекция & lt; ; S & gt ;, где S - подтип E.
  • . Совершенно законно вызывать containsAll () с набором другого типа. Процедура должна работать, возвращает false. "
1
задан Michael Roland 13 July 2018 в 07:25
поделиться

1 ответ

Идентификаторы, которые вы читаете, одинаковы, за исключением того, что ваш USB-считыватель RFID, кажется, считывает только 4 байта 7-байтового UID. Поскольку ваш USB-считыватель не поддерживает какие-либо другие форматы, вы не сможете вывести оставшиеся 3 байта из ниоткуда. Тем не менее, вы можете легко отрубить последние три байта UID в своем ионном приложении:

this.nfc.bytesToHexString(event.tag.id.slice(0, 4))

Тогда вы получите то же значение, что и для формата «№ 8 в обратном направлении HEX».

0
ответ дан Michael Roland 17 August 2018 в 13:31
поделиться
  • 1
    Большое спасибо! не заметил этого. Это отстой для читателя, но я буду жить с этим. – mateusz 13 July 2018 в 07:46
Другие вопросы по тегам:

Похожие вопросы: