как программа чтения nfc (acr122) определяет мой телефон?

Я покупаю ACR122U SDK, в котором есть считыватель acr122, компакт-диск и карты, и пытаюсь его протестировать. считыватель обнаруживает карты, меняя цвет светодиода с красного на зеленый, но когда я подношу свой телефон (NFC включен) к считывателю, ничего не происходит.

Как заставить читалку определять мой телефон? Мне нужно установить апплет карты Java на свой телефон, чтобы мой телефон работал как бесконтактная карта?


person Dexter Moregan    schedule 09.02.2014    source источник


Ответы (2)


У вас есть три варианта использования считывателя NFC ACR122U:

  • ACR122U в одноранговом режиме: в одноранговом режиме вы можете связываться с устройством Android, используя встроенные в Android функции Beam. На стороне считывателя вам потребуется реализовать службу SNEP (и базовый стек протоколов LLCP + NFCIP-1). Вы можете найти примеры, например, с ISMB-SNEP, Инструменты NFC и nfcpy.

  • ACR122U в режиме эмуляции карты: в режиме эмуляции карты ACR122U может использоваться для эмуляции метки / бесконтактной смарт-карты, которая может быть обнаружена устройством Android, как и любая другая метка NFC / бесконтактная смарт-карта. Вы можете найти примеры, например, с помощью libnfc.

  • ACR122U в режиме чтения / записи: в режиме чтения / записи ACR122U может обмениваться данными с бесконтактными смарт-картами. Это соответствует тому, что takumar уже было опубликовано в его ответе. В то время как вы застряли с требованием безопасного элемента (что обычно сложно из-за отсутствия доступа или даже отсутствия SE), в последних версиях Android (в частности, CyanogenMod 9.1+ или Android 4.4+) у вас есть возможность использовать режим эмуляции хост-карты (HCE). См. документацию по Android, чтобы узнать, как это работает на Android 4.4 и позже.

person Michael Roland    schedule 10.02.2014
comment
Мне интересно, пробовали ли вы использовать PN532 в режиме эмуляции (эмуляция 14443-4 PICC), используя CoreNFC iPhone в качестве инициатора чтения? Я экспериментировал с этим, но не получил никаких вменяемых результатов. RATS возвращается как 0xE0, но когда я пытаюсь получить первую команду с iPhone, я получаю 0x60, а не ожидаемую команду выбора (00 A4 04 00 ‹Lc› ‹AID› 00). Этот результат будет одинаковым вне зависимости от того, включаю ли я идентификатор приложения ISO7816 в info.plist приложения iPhone. Я ожидал, что первая команда будет командой select с указанным мной AID / - person Papyrus; 13.04.2021

Ваш телефон должен быть включен для эмуляции карты, но не все. Кроме того, вам необходимо выяснить, куда направляется эмуляция карты. Это может быть SIM-карта или какой-либо встроенный элемент безопасности. Как только это будет сделано, вы можете подумать о развертывании приложения на тестовой SIM-карте (очень маловероятно, что вы когда-нибудь получите ключи от встроенного безопасного элемента). Работа со сборкой AOSP для Android (например, на Nexus 5) помогает, потому что вы можете установить маршрут. Я считаю, что тестовые SIM-карты с тестовыми ключами можно купить в Интернете. Когда он у вас есть, вы можете использовать GPShell для установки приложения. Удачи.

person takumar    schedule 09.02.2014