C#NFC近距离处理程序未启动

C#NFC近距离处理程序未启动,c#,windows,handler,nfc,proximity,C#,Windows,Handler,Nfc,Proximity,我在写和读NFC标签方面有严重的问题。 处理程序未被激发 这是我的代码,用于向NFC标记写入一些文本,它正在工作: // Writes a string to a NFC tag private bool WriteToNFCTag(string value) { var dataWriter = new DataWriter() { UnicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.Ut

我在写和读NFC标签方面有严重的问题。 处理程序未被激发

这是我的代码,用于向NFC标记写入一些文本,它正在工作:

// Writes a string to a NFC tag
    private bool WriteToNFCTag(string value)
    {

            var dataWriter = new DataWriter() { UnicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.Utf8 };
            dataWriter.WriteString(value);

            ProximityDevice.GetDefault().PublishBinaryMessage("Windows:WriteTag.NokiaTest", dataWriter.DetachBuffer(), MesssageTransmitted);


    }

private void MesssageTransmitted(ProximityDevice sender, long messageId)
        {
            Debug.WriteLine("Message sent!");
        }
但我看不清NFC标签:

ProximityDevice.GetDefault().SubscribeForMessage("Windows.NokiaTest", messageReceivedHandler);
不启动messageReceivedHandler


我没有收到任何错误消息或类似的消息。如果有人能帮我,我会很高兴的。谢谢

我认为您需要使用
方法停止发布

private void MesssageTransmitted(ProximityDevice sender, long messageId)
{
    Debug.WriteLine("Message sent!");
    ProximityDevice.GetDefault().StopPublishingMessage(messageId);
}
更新:最近几个月,我一直在开发一个Win8.1桌面应用程序,使用
NDEF
格式(协议:“NDEF:WriteTag”发布,“NDEF”订阅)写入/读取NFC标记。我使用来自的NDEFILBRARY

根据,Windows协议是在设备之间,而不是在设备和标签之间。因此,您可能需要使用“在设备和标记之间”的NDEF协议

另见根据

由于接近API仅提供对NFC协议的高级访问,并且Windows Phone在此基础上添加了一些保护,因此您与NFC标记的交互受到限制:

不能格式化标记。必须为NDEF消息格式化您的标记

您的标记只能包含NDEF消息

接近API不提供直接操纵NDEF消息的工具。要操作原始NDEF消息,可以使用NDEF库进行近距离API(NFC)


刚试过这个,但不管用:谢谢,但不管用。它仍然不会跳转到处理程序。或者可能是因为不支持
Windows
协议。请参阅我的最新答案。
private void MesssageTransmitted(ProximityDevice sender, long messageId)
{
    Debug.WriteLine("Message sent!");
    ProximityDevice.GetDefault().StopPublishingMessage(messageId);
}