我尝试从 Micrsoft Surface Go 2 上的 UWP C# 应用程序读取 NFC MIFARE 卡。但即使使用 Microsoft 的示例应用程序“ProximitySensor”(https://github.com/Microsoft/Windows-universal-samples/tree /master/Samples/ProximitySensor)我没有让它工作。示例应用程序不断告诉我“未找到接近传感器”。
我如何修复它?
要解决这个问题,需要做两件事。
第一个是,拥有合适版本的 Surface Go 2。我得到的第一个版本是“消费者”版本(到目前为止我还不知道,还有另一个版本)。这个根本没有内置 NFC 读取器(或者至少没有驱动程序使其工作)。
您需要的是 Surface Go 2 商务版。只有这个具有内置 NFC 传感器并在设备中注册。
打开此设备上的设备管理器,它向我显示了一个“接近设备”(NXP 的东西......)。 👍
到目前为止,一切都很好。尝试示例应用程序,我仍然得到“未找到接近传感器”。这是解决这个问题的技巧:
Windows API 有两个不同的类用于访问 NFC(他们称之为接近)设备。
第一个是 ProximitySensor Class,它在示例应用程序中使用,但不适用于 Surface Go 2。
另一个是ProximityDevice Class,它是网络命名空间的一部分。这是在 Surface Go 2 上运行的。这里有一些示例代码如何使用它。可以读取我的 MIFARE 卡的内容了。 👍
第一个是,拥有合适版本的 Surface Go 2。我得到的第一个版本是“消费者”版本(到目前为止我还不知道,还有另一个版本)。这个根本没有内置 NFC 读取器(或者至少没有驱动程序使其工作)。
您需要的是 Surface Go 2
商务版。只有这个具有内置 NFC 传感器并在设备中注册。 打开此设备上的设备管理器,它向我显示了一个“接近设备”(NXP 的东西......)。
但是,尝试示例应用程序时,我仍然收到“未找到接近传感器”的消息。事实证明,Windows API 有两个不同的类用于访问 NFC(他们称之为近距离)设备。第一个是
ProximitySensor
类,它在示例应用程序中使用,但在 Surface Go 2 上
不工作。 另一个是
ProximityDevice
Networking命名空间的一部分。这个正在 Surface Go 2 上运行。 这里有一些使用它的示例代码,它可以很好地读取我的 MIFARE 卡的内容。