13.01.2014 Aufrufe

PDF 941kB - Hochschule Ulm

PDF 941kB - Hochschule Ulm

PDF 941kB - Hochschule Ulm

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!