我正在開發有關nfc標籤的windows phone應用程序,我可以在其中編寫所有四種類型爲NdefTextRecord的記錄。發佈它時沒有問題。主要問題在閱讀NDEF消息時出現我無法讀取我發佈的任何記錄。我想要讀取所有四條記錄,但是讀取它時什麼也不讀。 下面是發佈消息的代碼。如何從Windows Phone 8中的Nfc標籤讀取多個NdefTextRecord
public void ApplicationBarIconButton_Click(object sender, System.EventArgs e)
{
var fRecord = new NdefTextRecord{Text = TxtFloor.Text , LanguageCode = "en-US" };
var zRecord = new NdefTextRecord { Text = TxtZone.Text, LanguageCode = "en-US" };
var latRecord = new NdefTextRecord { Text = LatitudeTextBlock.Text, LanguageCode = "en-US" };
var longRecord = new NdefTextRecord { Text = LongitudeTextBlock.Text, LanguageCode = "en-US" };
var msg = new NdefMessage {};
msg.Add(fRecord);
msg.Add(zRecord);
msg.Add(latRecord);
msg.Add(longRecord);
_device.PublishBinaryMessage(
"NDEF:WriteTag",
msg.ToByteArray().AsBuffer(),
MessageWrittenHandler);
SetStatusOutput("Message written");
}
下面
是訂閱
private void InitializeProximityDevice()
{
_device = Windows.Networking.Proximity.ProximityDevice.GetDefault();
if (_device != null)
{
_subscriptionIdNdef = _device.SubscribeForMessage("NDEF", MessageReceivedHandler);
}
}
private void MessageReceivedHandler(ProximityDevice sender, ProximityMessage message)
{
var rawMsg = message.Data.ToArray();
var ndefMessage = NdefMessage.FromByteArray(rawMsg);
// Loop over all records contained in the NDEF message
foreach (NdefRecord record in ndefMessage)
{
if (NdefTextRecord.IsRecordType(record))
{
// Convert and extract URI info
var textRecord = new NdefTextRecord(record);
var str = textRecord;
//SetLogStatus();
}