#c# #windows #uwp #nfc #proximity
#c# #Windows #uwp #nfc #близость
Вопрос:
Я попытался прочитать карты NFC MIFARE из приложения UWP C # на Micrsoft Surface Go 2. Но даже с образцом приложения «ProximitySensor» от Microsoft (https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/ProximitySensor ) Я не смог заставить его работать. Примерное приложение продолжало сообщать мне «Датчик приближения не найден».
Как я это исправил?
Для решения этой проблемы необходимо две вещи.
Первый — иметь правильную версию Surface Go 2. Первой, которую я получил, была «потребительская» версия (пока я не знал, есть еще одна). В этом устройстве вообще нет встроенного NFC-считывателя (или, по крайней мере, нет драйвера для его работы).
Что вам нужно, так это Surface Go 2 для бизнеса. Только этот имеет встроенный и зарегистрированный в устройствах датчик NFC.
Открыв диспетчер устройств на этом, он показал мне «Бесконтактное устройство» (что-то вроде NXP …). 👍
Пока все хорошо. Попробовав пример приложения, я все еще получил сообщение «Датчик приближения не найден». Вот хитрость, чтобы решить эту проблему:
Windows API имеет два разных класса для доступа к устройствам NFC (они называют это proximity).
Первый — это класс ProximitySensor, который использовался в примере приложения и НЕ работал в Surface Go 2.
Другой — класс ProximityDevice, который является частью сетевого пространства имен- . Этот работает на Surface Go 2. Вот несколько примеров кода, как его использовать. Получил его для чтения содержимого моей карты MIFARE в порядке. 👍
Комментарии:
1. Привет, я не вижу здесь вопроса. Если все, что вы делаете, это делитесь своим опытом (что здорово, не поймите меня неправильно, просто вы не ожидаете никаких ответов), вам следует изложить проблему в вопросе, а затем ответить на свой вопрос (установив флажок «Ответить на свой вопрос» при создании вопроса)
2. У вас есть СМАРТ-карта, которая выглядит как диск, установленный на вашем компьютере. Для доступа к карте нужен оконный накопитель, и вам нужно разблокировать карту, потому что она зашифрована. При отладке смарт-карты я обычно выполняю следующие действия: 1) Считываю карту с помощью проводника. Это гарантирует, что драйвер установлен и карту можно разблокировать. 2) Разработайте приложение на c #, сначала разблокировав карту с помощью проводника, прежде чем запускать приложение на c #. Определите размер адреса и размеры данных. Данные / адрес могут быть 8,16,32 бит 3) Получить разблокировку, работающую с c #. Вы не сможете разблокировать карту, пока не определите размеры.
3. Я использую NFC Reader в своем проекте. Но я использую use dll для подключения к считывателю. Учитывая, что есть примеры кодов, у вас не должно возникнуть проблем. После установки драйвера вы можете подключиться к считывателю.