Verwenden von Classic Bluetooth

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu Verwenden von Bluetooth


Weil die Bluetooth Core Specification seit der Version 4.0 unterschiedliche Typen von "Bluetooth"-Protokollen, wie Bluetooth Low Energy, definiert, wird das ursprüngliche Bluetooth-Protokoll "Classic Bluetooth" genannt. Classic Bluetooth bietet eine viel höhere Übertragungsrate als Bluetooth Low Energy, hat aber dafür einen höheren Energiebedarf.

So implementieren Sie die Classic Bluetooth-Unterstützung in Ihren Anwendungen:

Plattformunterstützung

Plattform Unterstützt?

Windows

YesC++11Feature.png

Mac OS X

YesC++11Feature.png

iOS

Android

YesC++11Feature.png
Hinweis: iOS-Geräte unterstützen Classic Bluetooth nicht, sondern nur Bluetooth Low Energy.

Abrufen einer Instanz von TBluetoothManager

Um die RTL-Bluetooth-Funktion zu verwenden, müssen Sie die Unit System.Bluetooth in Ihre Anwendung einbeziehen und TBluetoothManager.Current aufrufen, um eine Instanz von TBluetoothManager abzurufen. TBluetoothManager ist die Hauptklasse der Classic Bluetooth-Implementierung der RTL.

Hinweis: TBluetoothManager.Current gibt immer dieselbe Instanz von TBluetoothManager zurück. Sie benötigen nur eine Instanz von TBluetoothManager.

Ermitteln von und Koppeln mit Remote-Geräten

Bevor Ihre Anwendung eine Verbindung mit einer Remote-Anwendung über Classic Bluetooth herstellen kann, müssen die Geräte, auf denen die jeweilige Anwendung ausgeführt wird, mit einander für die Verwendung von Bluetooth gekoppelt werden.

Festlegen von Geräten als ermittelbar

Eines der beiden Geräte muss ermittelbar sein, d. h., andere Bluetooth-fähige Geräte müssen es über Classic Bluetooth finden können.

Auf den meisten Plattformen können Sie den Benutzer dazu auffordern, das Gerät, auf dem Ihre Anwendung ausgeführt wird, als ermittelbar festzulegen. Rufen Sie TBluetoothManager.StartDiscoverable auf, um eine Aufforderung zu starten und das Ereignis TBluetoothManager.OnDiscoverableEnd zu behandeln. OnDiscoverableEnd wird ausgelöst, wenn der Benutzer zustimmt, dass das Gerät ermittelbar wird.

Hinweis: Sie können nur anfordern, dass das Gerät für eine bestimmte Zeit (auf einigen Plattformen gibt es dafür Begrenzungen) ermittelbar ist. Wenn diese Zeit verstrichen ist und Sie die folgenden Schritte für die Ermittlung und Koppelung noch nicht durchgeführt haben, müssen Sie eventuell die Festlegung des Geräts als ermittelbar erneut anfordern.

Auf Mac OS X ist es nicht möglich, dass Anwendungen Benutzer dazu auffordern, das Gerät als ermittelbar festzulegen. Sie müssen den Benutzer auffordern, das Gerät manuell als ermittelbar zu konfigurieren.

Ermitteln von Remote-Geräten

Wenn eines der Geräte ermittelbar ist, muss das andere Gerät das ermittelbare Gerät finden.

Rufen Sie TBluetoothManager.StartDiscovery auf dem anderen Gerät auf, um die Ermittlung zu starten und eine Liste der ermittelbaren Remote-Geräte in Reichweite zu erhalten. Behandeln Sie das Ereignis TBluetoothManager.OnDiscoveryEnd, um die Liste der gefundenen Remote-Geräte sofort nach Abschluss der Ermittlung abzurufen. Sie können jederzeit mit der Eigenschaft TBluetoothManager.LastDiscoveredDevices auf die letzte Liste der gefundenen Geräte zugreifen.

Koppeln mit einem Remote-Gerät

Sobald Ihre Anwendung über die Liste der Remote-Geräte verfügt, können Sie eine Koppelungsanforderung an eines dieser Geräte (TBluetoothDevice) senden.

Rufen Sie zum Starten der Koppelungsanforderung TBluetoothManager.CurrentAdapter.Pair auf. Der tatsächliche Koppelungsvorgang wird vom Betriebssystem ausgeführt, das Ihren Benutzer durch den Koppelungsprozess leitet.

Überprüfen Sie den Wert von TBluetoothDevice.IsPaired, um festzustellen, ob die Koppelung erfolgreich war oder nicht.

Herstellen einer Verbindung mit einem gekoppelten Remote-Gerät

Sobald das Gerät, auf dem Ihre Anwendung ausgeführt wird, mit einem Remote-Gerät gekoppelt ist, können Sie über Classic Bluetooth eine Verbindung mit Anwendungen herstellen, die auf dem Remote-Geräte ausgeführt werden.

So verbinden Sie zwei Anwendungen, die auf gekoppelten Geräten ausgeführt werden, über Classic Bluetooth:

  1. Eine der Anwendungen (Server) muss einen Dienst veröffentlichen. Rufen Sie TBluetoothManager.CreateServerSocket auf, und speichern Sie die zurückgegebene Instanz von TBluetoothServerSocket, um einen Dienst zu veröffentlichen.
  2. Die andere Anwendung (Client) muss den Dienst der Serveranwendung ermitteln und eine Verbindung damit herstellen:
    1. Suchen Sie in TBluetoothManager.GetPairedDevices das Remote-Gerät (TBluetoothDevice), auf dem die Serveranwendung ausgeführt wird.
    2. Suchen Sie in TBluetoothDevice.LastServiceList den Dienst (TBluetoothService), den Sie verwenden möchten.
    3. Rufen Sie TBluetoothDevice.CreateClientSocket auf, um einen Socket (TBluetoothSocket) für die Verbindung mit dem Remote-Dienst abzurufen. Stellen Sie die Eigenschaft UUID des Diensts für TBluetoothDevice.CreateClientSocket bereit, um den Remote-Dienst festzulegen.
    4. Rufen Sie TBluetoothSocket.Connect auf, um die Verbindung zu starten.
  3. Rufen Sie in der Serveranwendung TBluetoothServerSocket.Accept auf, um die eingehende Verbindung zu akzeptieren.

TBluetoothServerSocket.Accept gibt einen regulärer Classic Bluetooth-Socket (TBluetoothSocket) zurück, der bereits mit dem Socket der Remote-Anwendung verbunden ist.

Senden und Empfangen von Daten

Wenn eine Instanz von TBluetoothSocket mit der Remote-Anwendung verbunden ist, entweder als Client oder als Server, können Sie beliebige Daten von der Remote-Anwendung als Byte-Array senden oder empfangen. Verwenden Sie zum Senden und Empfangen von Daten von der Remote-Anwendung TBluetoothSocket.SendData bzw. TBluetoothSocket.ReadData.

Siehe auch