Windows Phone 8 NFC 是否支持基于 Mifare Ultralight/Classic 的标签? 我使用此代码访问诺基亚 Lumia 920 上的 NFC 设备(代码示例取自 NDEF Tag Reader – NFC NDEF Tag Reader)
public partial class MainPage : PhoneApplicationPage
{
public MainPage()
{
InitializeComponent();
ProximityDevice device = ProximityDevice.GetDefault();
device.DeviceArrived += DeviceArrived;
device.DeviceDeparted += DeviceDeparted;
device.SubscribeForMessage("NDEF", MessageReceived);
}
private void DeviceArrived(ProximityDevice sender)
{
// this event occurs when I am tapping any of my tags (tried 5 different Mifare Ultralight/Classic)
}
private void DeviceDeparted(ProximityDevice sender)
{
// this event occurs when I am moving away any tag
}
private void MessageReceived(ProximityDevice sender, ProximityMessage message)
{
// this event is never fired!!! :(
}
}
WP8 上的 NFC 是否有缺陷或此代码是否有误?
更新: 来自这份文件NFC Forum Type Tags您会发现 Mifare Ultralight 与 NDEF 兼容。 Android 设备可以轻松读取此类标签。
最佳答案
Mifrare 在 WP8 和 Lumia 920 上受支持。我在这里猜测,但很可能您的 Mifare NFC 标签未格式化/未初始化为 NDEF。您可以在购买 NFC 标签时要求您的 NFC 标签为 NDEF 格式。
Lumia 920 芯片(NXP PN544 系列)支持以下标签类型(至少):
- 类型 1:黄 Jade 家族
- 类型 2:Mifare Ultralight 系列、my-d-move、NTag
- 类型 3:Felica 家族
- 类型 4:Desfire 家族
- 非标准化:Mifare 标准
关于 NFC 标签的 NDEF 格式:
- WP8 仅支持对这些标签的 NDEF 级别访问,这意味着标签需要是 NDEF 格式或具有现有的 NDEF 消息(可以是空的)。如果您尝试在未格式化的 NFC 标签上使用 API,它们将不起作用(因为 WP8 不支持低级别标签类型特定命令/访问)
- 如果您想对您的标签进行 NDEF 格式化,您有以下选择:订购标签时要求它们采用 NDEF 格式(或/并且包含一个空的 NDEF 消息和要解锁的标签),使用 NFC USB 读取器/写入器适用于 PC 的硬件或使用带有 NFC 写入应用程序的 Symbian/MeeGo/Android NFC 设备
此致,
-- 贾斯汀·安吉尔
诺基亚 Windows Phone 开发人员体验首席工程师
关于c# - 使用 Windows Phone 8 NFC 读取 Mifare 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13207401/