Verwenden von Classic Bluetooth

Aus RAD Studio
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*

Checkmark.svg

macOS

Checkmark.svg

iOS

Android

Checkmark.svg

*Windows-Server unterstützt Bluetooth nicht (siehe: General Bluetooth Support in Windows (EN)).

Classic Bluetooth auf iOS

Die RTL unterstützt Classic Bluetooth auf iOS nicht. Und zwar, weil nur Hardware-Herstellern der Zugriff auf das SDK für Classic Bluetooth möglich ist. Weitere Informationen finden Sie unter Apple Developers: MFi Program (EN).

Hinzufügen einer TBluetooth-Komponente zu Ihrer Anwendung

Die RTL stellt die Komponente TBluetooth bereit, mit der Sie auf alle Funktionen der RTL für Classic Bluetooth zugreifen können. Ziehen Sie eine TBluetooth-Komponente aus der Tool-Palette in ein Formular oder Datenmodul Ihrer Anwendung.

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 TBluetooth.StartDiscoverable auf, um eine Aufforderung zu starten und das Ereignis TBluetooth.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. Unter macOS 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 TBluetooth.DiscoverDevices 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 TBluetooth.OnDiscoveryEnd, um die Liste der gefundenen Remote-Geräte sofort nach Abschluss der Ermittlung abzurufen. Sie können jederzeit mit der Eigenschaft TBluetooth.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 TBluetooth.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 TBluetooth.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 TBluetooth.PairedDevices 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