接近设备 API - NDEF 发布的参数异常

Proximity Device API - Argument Exception on NDEF Publishing

我正在尝试使用 Windows 接近设备 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,但消息是 "Message "参数是 incorrect.This ProximityDevice 不支持传入的消息类型:NDEF.someSubtype""=13 =]

代码:

//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 文档说:

The message contents are properly formatted NDEF records

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