2017-06-23 5 views
0

Ist es möglich, leere NTAG213 zu NDEF mit UWP formatieren? Gefunden this post, wo über "Windows Phone 8.1 Unterstützung für die Formatierung zu NDEF für MIFARE Classic, MIFARE Ultralight und DESFire" sprechen. Aber was ist mit NTAG213 oder etwas anderem? Und was ist mit UWP und Win10?Format NTAG213 zu NDEF unter Windows 10 UWP App

Vorformatiert an NDEF-Tag funktioniert gut. Schreiben auf einem vorformatierten Tag ist unten:

 string launchAppMessage = string.Join("#", new string[] { 
       "MyAppName", 
       "\tWindows\t", 
       message+"#" 
     }); 
     var dataWriter = new Windows.Storage.Streams.DataWriter(); 
     dataWriter.UnicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.Utf16LE; 
     dataWriter.WriteString(launchAppMessage); 
     _publishingMessageId = _device.PublishBinaryMessage("LaunchApp:WriteTag", dataWriter.DetachBuffer(), MessageWrittenHandler); 

Aber wie formatieren leere Tag zu NDEF? Der folgende Code löst immer aus System.ArgumentException: Wert fällt nicht in den erwarteten Bereich.

try 
    { 
     // empty NDEF message 
     var test = new byte[] { 0x03, 0x03, 0xD0, 0x00, 0x00, 0xFE}; 
     var dataWriter = new Windows.Storage.Streams.DataWriter(); 
     dataWriter.UnicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.Utf16LE; 
     dataWriter.WriteBytes(test); 
     _publishingMessageId = _device.PublishBinaryMessage("NDEF:Empty", dataWriter.DetachBuffer(), MessageWrittenHandler); 
    } 
    catch (Exception ex) 
    { 
     var mesasge = ex.Message; 
    } 

Ich bin nicht wirklich sicher, was ich richtig Nachrichtentyp („NDEF: Empty“) bin mit oder was mein test Variable enthält rechtses Bytes. Aber ich weiß nicht, was ich sonst tun soll.

Vielleicht hat jemand das vorher gemacht? Danke im Voraus!

EDIT:

Nach einigen Recherchen habe ich versucht, diesen Code auf nicht Tag formatiert. Dies löst keine Ausnahme aus, aber das Tag ist noch leer. einfach nichts scheint, wie dieser Code tun:

string launchAppMessage = string.Join("#", new string[] { 
    "MyAppName", 
    "\tWindows\t", 
    "TEST"+"#" 
    }); 

var dataWriter = new Windows.Storage.Streams.DataWriter(); 
dataWriter.UnicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.Utf16LE; 
dataWriter.WriteString(launchAppMessage); 
_publishingMessageId = _device.PublishBinaryMessage("LaunchApp:WriteTag", dataWriter.DetachBuffer(), MessageWrittenHandler); 

EDIT2:

ich weitere Informationen gesammelt, um meine Frage verständlicher zu machen.

Unten können Sie zwei Zustände desselben Tags sehen.

enter image description here

der rechten Seite-Tag wird auf die Werkseinstellungen formatiert (und nicht zugänglich von meiner app), Seite links in NDEF formatiert (und zugänglich von der app). Auf der linken Seite sehen Sie eine leere NDEF-Nachricht (03 03 D0 00 00 FE).

Ich markierte den Unterschied zwischen diesen Staaten durch einen gelben Rand.

Und so meine Frage. Es gibt eine Möglichkeit, Tags vom "richtigen" Zustand nach "links" zu formatieren?

+0

Überprüfen Sie meine MSDN-Post hier https://social.msdn.microsoft.com/Forums/en-US/a60a4c61-32d1-4851-add5-63ad5e6342d2/uwpformat-ntag213-to-ndef-on-windows-10 -uwp-app? Forum = wpdevelop, um zu sehen, ob Sie die Nachrichtentypen ändern können. Der erste Nachrichtentyp scheint nicht richtig zu sein. Vielleicht können Sie versuchen, dass unconwn Typ –

+0

Danke! Ich werde es versuchen und Ihnen von den Ergebnissen erzählen. – ashchuk

+0

Nein, es hat nicht funktioniert. Antwort in EDIT2 – ashchuk

Antwort

1

Sie können NDEF-Format NTAG213 oder NTAG216 in Windows 10 UWP, auf dem Telefon oder Desktop. Verwenden Sie nicht die ProximityDevice-Klassen, sondern die Windows.Devices.SmartCards.SmartCardReader-Klassen. Es gibt auch eine nützliche PCSC Wrapper MS schrieb hier: https://nfcsmartcardreader.codeplex.com/ Ohne das richtige Telefon oder Chip im Telefon, wird es nicht funktionieren, aber wenn Sie das richtige Modell haben, funktioniert das. Dadurch erhalten Sie auf niedriger Ebene Zugriff auf das Tag, um Blöcke zu schreiben, die zum Einrichten des Tags mit dem NDEF-Format benötigt werden.

+0

SmartCardReader-Enumeration gibt immer 'null' zurück, auch dann habe ich den SmartCardReader-Enumerationsdienst in Windows Services aktiviert.Das bedeutet, dass ich einfach nicht auf diese Low-Level-Funktionalität mit Tablet zugreifen kann, was ich jetzt habe. Als Antwort markiert. Danke vielmals! – ashchuk

Verwandte Themen