邻近感应设备 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);
输入缓冲区错误。对于 NDEF 消息,API 文档说:
邮件内容格式正确的 NDEF 记录
因此,使用 Andijac (https://github.com/andijakl/ndef-nfc) 的 ndef-nfc 库,二进制消息被正确发布。