PDF 941kB - Hochschule Ulm
PDF 941kB - Hochschule Ulm
PDF 941kB - Hochschule Ulm
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Implementierung<br />
sich die Event Handler in dieser Klasse. Der Ablauf vom MessageReceived Event bis zum<br />
übertragen einer Nachricht lässt sich in Abbildung 29 zusammenfassen.<br />
:Nfc<br />
:MainPage<br />
:ProximityDevice<br />
MessageReceived<br />
Handler(...)<br />
MessageReceivedFrom<br />
ReaderHandler(...)<br />
SendMessage(...)<br />
PublishBinaryMessage(...)<br />
≪return≫<br />
MessageTransmittedHandler(...)<br />
Abbildung 29: Ablauf in der App beim Erhalt einer Nachricht.<br />
Es gibt jedoch einen Sonderfall: Die erste Nachricht die Übertragen wird sendet der<br />
Reader. Es wird ein NdefMessage Objekt mit einem NdefUriRecord Objekt mit dem<br />
Inhalt NfcApp:HelloFromReader übertragen. Der Sinn dieser URI die Übertragen wird<br />
ist lediglich die App zu starten. D.h. die URI wird zunächst vom Windows Phone 8<br />
Betriebssystem abgefangen, um den Nutzer um Erlaubnis zu bitten, die mit dem URI-<br />
Schema registrierte App zu öffnen. Beim Öffnen der App werden die Informationen<br />
nach dem Doppelpunkt, also HelloFromReader, der App mitübergeben. Die Konsequenz<br />
daraus ist, dass statt der MessageReceivedFromReaderHandler() Methode durch das<br />
Event MessageReceived, die OnNavigatedTo() Methode mit dem übergebenen Parameter,<br />
aufgerufen wird. Um die Logik in der MessageReceivedFromReaderHandler() Methode<br />
möglichst einfach und Konsistent zu halten, wird innerhalb der OnNavigatedTo()<br />
Methode das NdefMessage Objekt mit dem NdefUriRecord Objekt selbst erzeugt und<br />
der MessageReceivedFromReaderHandler() Methode manuell übergeben, damit es erscheint,<br />
als wurde die Nachricht von der App über NFC empfangen. Vor der Übergabe<br />
wird beim NdefUriRecord Objekt die Property Id auf 0 gesetzt, damit die Logik innerhalb<br />
von MessageReceivedFromReaderHandler() erkennt, in welchem Schritt sich der<br />
Reader und die App befinden. In Listing 11 wird dies dargestellt.<br />
1 protected override void OnNavigatedTo ( NavigationEventArgs e)<br />
2 {<br />
3 if( NavigationContext . QueryString . ContainsKey ("<br />
Message "))<br />
4 {<br />
5 string message = NavigationContext .<br />
55