Кто-нибудь знает о Android NFC, как один телефон может обнаружить тип других устройств NFC, включая тег, другой телефон в P2P или другой телефон в режиме Hosted Emulator? В коде все сообщения поступают из NdefMessage, где-нибудь объявляют, что сообщение отправлено с каких устройств?Как определить тип устройств NFC с помощью телефона Android?
ответ
Это зависит от того, как вы получаете NdefMessage в своем приложении. Например, если вы получаете его с помощью намерения ACTION_NDEF_DISCOVERED
, есть обязательное дополнение дополнительно EXTRA_TAG
. Используя объект Tag
, переданный в этом дополнительном состоянии, вы можете оценить, какой тип устройства использовался для передачи сообщения NDEF.
Этот метод должен позволять вам четко различать сообщения, полученные в режиме одноранговой сети, и с устройства эмуляции тегов/смарт-карт/карт NFC. Разница между фактическим тегом NFC (или бесконтактной смарт-картой) и устройством в режиме эмуляции карты, безусловно, будет более сложной и, безусловно, потребует некоторой обширной отпечатки пальцев (например, устройство, которое эмулирует NfcA, а также поддерживает одноранговый режим, можно различить из тега NfcA через его SAK-байт, который обычно указывает поддержку NFCIP-1).
Если вы пишете приложение, контролируете ли вы сторону отправки? –