Mein Open-Source Projekt “trakkcor” (vormals “hikr”) ist in der ersten stabilen Version auf Sourceforge verfügbar. Um was gehts? trakkcor ist ein J2ME-Midlet, dass Positionsdaten eines externen Bluetooth GPS-Empfängers aufzeichnet und bei Bedarf via HTTP POST an einen beliebigen Server schickt. Der Server kann die empfangenen Positionsdaten weiterverarbeiten und beispielsweise den Track über Google Maps darstellen.
Ausgangspunkt für die Suche von Bluetoothgeräten ist die Klasse DiscoveryAgent. Sie erlaubt die Suche nach Geräten und Diensten. Dabei wird die Suche im Hintergrund ausgeführt und blockiert nicht die Applikation. Wird ein Gerät oder ein Dienst gefunden, dann wird dies über ein Listener, dem DiscoveryListener, mitgeteilt.
Der Entwickler implementiert diesen Listener und übergibt ihn beim Start der Suche. Die JABWT-Implementierung ruft die Methoden dieses Listeners auf und übermittelt gefundene Geräte (Klasse RemoteDevice) bzw. Dienste (Interface ServiceRecord) als Übergabeparameter. Mit Hilfe dieser Objekte erhält man den Connection String (den wir ja nicht mehr hartcodieren möchten )
Im nachfolgenden Beispiel wird zunächst eine Suche nach Geräten mit der major device class “peripheral” ausgeführt. Anschliessend wird auf einem gefundenen Gerät die Suche nach dem RFCOMM-Dienst gestartet.
Beispielcode:
…
DiscoveryListener listener= new DiscoveryListener(){