PDF 941kB - Hochschule Ulm
PDF 941kB - Hochschule Ulm
PDF 941kB - Hochschule Ulm
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Implementierung<br />
ble FirstMessageToSend zugewiesen. Zudem stellt die Klasse ProximityDevice unterschiedliche<br />
Events bereit, unter anderem das Event DeviceArrived, wenn ein anderes<br />
NFC Gerät erkannt wird. In Listing 5 wird dies veranschaulicht.<br />
1 this . ProximityDevice . DeviceArrived += DeviceArrivedHandler ;<br />
2 this . ProximityDevice . DeviceDeparted += DeviceDepartedHandler<br />
;<br />
3 this . ProximityDevice . SubscribeForMessage (" NDEF ",<br />
MessageReceivedHandler );<br />
Listing 5: Registrieren von Event Handlern bei der Instanz der Klasse ProximityDevice.<br />
Da sowohl Reader als auch die App den gleichen Code der Klasse Nfc verwenden, werden<br />
beide auf das Event DeviceArrived reagieren und die Methode DeviceArrivedHandler<br />
() aufrufen. Wenn aber beide Anwendungen gleichzeitig anfangen zu senden, wird die<br />
andere Anwendung nichts verstehen können. Daher die Notwendigkeit festzulegen, wer<br />
als erstes eine Nachricht senden darf. In Listing 6 wird die DeviceArrivedHandler()<br />
Methode gezeigt.<br />
1 private void DeviceArrivedHandler ( ProximityDevice sender )<br />
2 {<br />
3 if( this . SendsFirstMessage )<br />
4 {<br />
5 // ...<br />
6 this . SendMessage ( this . FirstMessageToSend );<br />
7 }<br />
8 }<br />
Listing 6: Implementierung des DeviceArrivedHandler Event Handlers.<br />
Im Fall des Readers, überträgt dieser über die SendMessage() Methode den beim<br />
Erzeugen der Klasse Nfc übergebenen Parameter.<br />
Die SendMessage() Methode bedient die PublishBinaryMessage() Methode der<br />
Klasse ProximityDevice, wie in Listing 7 ersichtlich ist.<br />
1 public void SendMessage ( NdefMessage ndefMessage )<br />
2 {<br />
3 this . MessageId = this . ProximityDevice .<br />
PublishBinaryMessage (" NDEF ", ndefMessage .<br />
ToByteArray (). AsBuffer () , this .<br />
MessageTransmittedHandler );<br />
4 }<br />
Listing 7: Übermitteln einer Nachricht mit der SendMessage Methode.<br />
Als erster Parameter wird angegeben, um welchen Nachrichtentyp es sich handelt, wie<br />
z.B. NDEF. Dieser Nachrichtentyp muss von einem Empfänger abonniert werden, damit<br />
52