Verwenden von Classic Bluetooth
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:
- Fügen Sie Ihrer Anwendung eine TBluetooth-Komponente hinzu.
- Ermitteln Sie Remote-Geräte und koppeln Sie sie.
- Stellen Sie eine Verbindung mit den gekoppelten Geräten her.
- Tauschen Sie Daten mit den verbundenen Geräten aus.
Inhaltsverzeichnis
Plattformunterstützung
Plattform | Unterstützt? |
---|---|
Windows* |
|
macOS |
|
iOS |
|
Android |
|
*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.
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:
- 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.
- Die andere Anwendung (Client) muss den Dienst der Serveranwendung ermitteln und eine Verbindung damit herstellen:
- Suchen Sie in TBluetooth.PairedDevices das Remote-Gerät (TBluetoothDevice), auf dem die Serveranwendung ausgeführt wird.
- Suchen Sie in TBluetoothDevice.LastServiceList den Dienst (TBluetoothService), den Sie verwenden möchten.
- 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. - Rufen Sie TBluetoothSocket.Connect auf, um die Verbindung zu starten.
- 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.