gpt4 book ai didi

android - 将 NDEF 消息多次写入同一个标签?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:02:13 25 4
gpt4 key购买 nike

在 Android 上,一旦 NFC 标签靠近手机,系统就会向我的应用程序发送一个 Intent ,其中包含一个允许我读取和写入该标签的 NDEF 消息的对象。具体来说,我可以随时写入这个标签,而它仍然在手机附近。下面的 Java 代码让您对我的意思有一个印象:

Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
Ndef ndef = Ndef.get(tag);
ndef.writeNdefMessage(/* some NDEF data */); // first write
ndef.writeNdefMessage(/* some NDEF data */); // second write
// further writes
ndef.writeNdefMessage(/* some NDEF data */); // n-th write

我可以在 Windows Phone 8.x 上做同样的事情吗?或者我可以只对标签执行一次 NDEF 消息写入操作,然后需要将其靠近再次(离开 RF 场并带着标签回来)?

最佳答案

我可以多次写入一个标签,而无需将它与手机分开并再次点击。例如,请参见以下代码:

ProximityDevice device = ProximityDevice.GetDefault();
device.SubscribeForMessage("WriteableTag", WriteableTagHandler);


private void WriteableTagHandler(ProximityDevice sender, ProximityMessage message)
{
var message1= Encoding.Unicode.GetBytes("http://1stUrl.com");
var message2 = Encoding.Unicode.GetBytes("http://secondUrl.com");

sender.PublishBinaryMessage("WindowsUri:WriteTag", message1.AsBuffer(), (s, e) =>
{
s.StopPublishingMessage(e);
sender.PublishBinaryMessage("WindowsUri:WriteTag", message2.AsBuffer(), (se,r)=>
{
se.StopPublishingMessage(r);
});
});
}

编辑:

我刚刚检查了两台设备,事实上,无需分开并再次点击手机即可多次读写。请参见下面的示例,其中一台设备发送 5 条消息,另一台设备接收所有消息:

设备 1(发送方):

ProximityDevice device = ProximityDevice.GetDefault();

device.DeviceArrived += (e) =>
{
for (int i = 1; i <= 5; i++)
{
e.PublishMessage("Windows.mySubType", "message " + i.ToString(), (s, m) =>
{
s.StopPublishingMessage(m);
});
}
};

设备 2(接收器):

ProximityDevice device = ProximityDevice.GetDefault();

device.SubscribeForMessage("Windows.mySubType", (s, e) =>
{
Dispatcher.BeginInvoke(() =>
{
MessageBox.Show(e.DataAsString);
});
});

关于android - 将 NDEF 消息多次写入同一个标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19956641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com