下面是使用 NFC 读取 HF RFID 标签的示例 Universal Win10 应用程序代码。设备读取 RFID 标签时不会触发“ReadTag”方法。我尝试将 Messagetype 从 NDEF 更改为 Windows,结果相同。如何在 Universal Windows 应用程序中使用 NFC 读取 RFID 标签?任何帮助将不胜感激。
我使用启用了 NFC 并指定 ISO 15693 标签的 Android 应用程序成功读取了相同的 RFID 标签。
win10 代码是使用 VS2015 更新 3 编译的,启用了“接近”功能,并部署在启用了 Microsoft Phone 950 NFC 上。
private long _messageSubscribeId;
Windows.Networking.Proximity.ProximityDevice proximityDevice;
public MainPage()
{
InitializeComponent();
proximityDevice = ProximityDevice.GetDefault();
if (proximityDevice != null)
{
proximityDevice.DeviceArrived += ProximityDeviceArrived;
proximityDevice.DeviceDeparted += ProximityDeviceDeparted;
//subscribe....
_messageSubscribeId = proximityDevice.SubscribeForMessage("NDEF",ReadTag);
}
else
{
MessageTextBlock.Text += "Failed to initialize proximity device.\n";
}
}
Windows.UI.Core.CoreDispatcher _dispatcher = Window.Current.Dispatcher;
private async void ProximityDeviceArrived(object sender)
{
await _dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,
() =>
{
MessageTextBlock.Text += "Proximate device arrived.\n";
});
}
private async void ProximityDeviceDeparted(object sender)
{
await _dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,
() =>
{
MessageTextBlock.Text += "Proximate device departed.\n";
});
}
private void ReadTag(ProximityDevice sender, ProximityMessage message)
{
await _dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,
() =>
{
MessageTextBlock.Text += "Proximate device Read Tag\n";
});
}