J2ME – Behandlung von Bluetooth Events


3.3.2.1 Behandlung der Bluetooth – Events:

Die Hauptaufgabe der Klasse CoreMidlet ist die Behandlung von Bluetooth-Ereignissen, sie implementiert hierfür das Interface BTListener. Zur Reaktion auf SMS-Ereignisse implementiert sie das Interface SMSListener.

Nachdem die Bluetoothfunktionalität aktiviert ist, reagiert die Callback-Methode handleAction() auf die Ereignisse welche im Interface definiert sind. Für Bluetooth sind das die Events:

BTListener.EVENT_CONNECT, BTListener.EVENT_SENT, BTListener.EVENT_RECEIVED, BTListener.EVENT_DISCONNECT

Die handleAction() – Methode erwartet einen String event, welcher den Eventtyp bezeichnet, ein Object remoteEndpt sowie ein Object arg als Übergabeparameter. Das remoteEndpt – Objekt enthält den EndPoint, der das Ereignis ausgelöst hat, es wird auf den Typ EndPoint gecastet und die Membervariable endpt zugewiesen.

Da die Funktionalität von „n3po“ nur auf die Kommunikation zwischen zwei Benutzern ausgelegt ist, ist dies immer der aktuelle Kommunikationspartner, es ist aber ohne großen Aufwand möglich die Applikation auch für die Kommunikation zwischen mehreren Benutzern zu erweitern. Das Objekt arg enthält das soeben empfangene DataPacket.

Je nach Eventtyp werden die Daten durch die handleAction() – Methode entsprechend behandelt. Wenn die Verbindung zu einem anderen Gerät hergestellt wurde, wird der EVENT_CONNECT durch die Netzwerkschicht ausgelöst, auf den die handleAction() – Methode mit dem Versenden des eigenen Profils bzw. Kennworts reagiert. Falls ein Client sich erfolgreich verbunden hat, schickt er also als erstes sein eigenes Profil an den Server, da die Überprüfung des Serverprofils bereits über die Service Description durchgeführt wurde, der Server also einen erwünschten Kommunikationspartner für den Client darstellt.

Auf eine eingehende Nachricht hin wird der EVENT_RECEIVED ausgelöst, handleAction() prüft nun den Inhalt des DataPacket auf den SIGNAL – Typ, die Typen sind als Integer im BluetoothLayer definiert und geben Auskunft über den Inhalt der Nachricht. Über die Methode DataPacket.getSignal() wird die SIGNAL-Nummer abgefragt.

Die folgende Grafik gibt einen Überblick über den Ablauf der Kommunikation:

J2ME   Behandlung von Bluetooth Events

 

Ist das DataPacket vom Typ SIGNAL_MESSAGE befindet sich eine Textnachricht in Form eines Strings in der Nachricht. Textnachrichten werden anhand des Anfangs der Nachricht weiter unterteilt, beginnt die Nachricht mit „Profil:“ oder „Kennwort:“ wird der Inhalt mittels der checkProfile() – Methode der Klasse PartnerProfile auf Übereinstimmung geprüft und dementspechend eine Reaktion darauf an den Kommunikationspartner geschickt. Textnachrichten welche die Benutzer untereinander austauschen beginnen mit dem Schlüsselwort „Chat:“.


Weiter zu Teil 2 – Chat per Bluetooth Handy

 

 



Ähnliche Artikel zu "J2ME – Behandlung von Bluetooth Events":


Wenn Du noch Fragen zum Thema J2ME – Behandlung von Bluetooth Events hast, dann schreib einfach einen Kommentar - oder schau dir meine Buchtipps an:

Wie ist DEINE Meinung zum Thema J2ME – Behandlung von Bluetooth Events?

Schreib sie einfach als Kommentar:




karbacher.org © J2ME – Behandlung von Bluetooth Events