Wie kann man ein Bluetoothgerät zur Laufzeit finden? Das Bluetoothprotokoll unterschiedet zwischen Erkennung von Diensten (Services) und Geräten (Devices). Um eine gezielte Suche zu ermöglichen, wird jedes Bluetoothgerät mit folgenden Informationen gekennzeichnet:
- major service class (”Positioning”, “Telephony” oder “Networking”)
- major device class (Grobe Klassifizierung des Geräts z.B. “Peripheral” oder “Audio/Video”)
- minor device class (Genauere Spezifikation der “major device class” z.B. “Keyboard”)
Da ein Gerät mehrere Dienste anbieten kann, sind mehrere “major service class” Einträge möglich.
Es gibt zwei Typen der Gerätesuche (”Inquiry”): “General/Unlimited Inquiry” und “Limited Dedicated Inquiry”. Die “Limited Dedicated Inquiry” liefert als Suchergebnis nur Geräte, die nur für eine begrenze Zeitdauer gefunden werden können (z.B. PDAs). Ein Bluetooth-Gerät kann sich also in drei verschiedenen Modi befinden: “general”, “limited” oder “not discoverable”.
Im nächsten Teil stelle ich den DiscoveryAgent
und den DiscoveryListener
vor, mit denen im JABWT die Suche nach Geräten und Diensten ausgeführt wird.
P.S.: Etwas ärgerlich finde ich, dass die offiziellen Bluetooth Spezifikationen nur mit einem sog. Adopter Account runtergeladen werden können. Und den bekommt man nur wenn man das “Bluetooth Trademark Licence Agreement” unterzeichnet(!).
