邻近感应设备 API - NDEF 发布时的参数异常

本文关键字:布时 参数 异常 NDEF 感应 API | 更新日期: 2023-09-27 17:56:08

我正在尝试使用Windows Proximity Device API写入二进制数据。

我可以

发现NFC标签,我可以从TAG读取NDEF消息,在Android Phone上写

但是当我尝试设置PublishBinaryMessage时,当我使用此messageTypes时,我总是收到ArgumentException(值不在预期范围内):"NDEF"、"WriteableTag"或 https://msdn.microsoft.com/en-us/library/windows/apps/hh701129.aspx 中描述的任何其他内容除了"Windows.someSubtype"。但在这种情况下,我的 TAG 没有写入。

我得到带有"NDEF.someSubtype"的ArgumentException,但消息是"消息"参数不正确。此邻近感应设备不支持传入的消息类型:NDEF.someSubtype"

代码:

//Does not work - Argument Exception - "Value does not fall within the expected range"
messageID = proximityDevice.PublishBinaryMessage("NDEF", Encoding.UTF8.GetBytes("lorem ipsum").AsBuffer(), MessageTransmittedHandler);
//Does not work - Argument Exception - "The parameter is incorrect"
messageID = proximityDevice.PublishBinaryMessage("NDEF.something", Encoding.UTF8.GetBytes("lorem ipsum").AsBuffer(), MessageTransmittedHandler);
//No Exception, but never writes on device.
messageID = proximityDevice.PublishBinaryMessage("Windows.something", Encoding.UTF8.GetBytes("lorem ipsum").AsBuffer(), MessageTransmittedHandler);

邻近感应设备 API - NDEF 发布时的参数异常

输入缓冲区错误。对于 NDEF 消息,API 文档说:

邮件内容格式正确的 NDEF 记录

因此,使用 Andijac (https://github.com/andijakl/ndef-nfc) 的 ndef-nfc 库,二进制消息被正确发布。