Utilisation du protocole Classic Bluetooth
Remonter à Utilisation du Bluetooth
Puisque "Bluetooth Core Specification" définit depuis la version 4.0 différents types de protocoles "Bluetooth", tels que Bluetooth Low Energy, le protocole Bluetooth original est désormais connu sous le terme "Classic Bluetooth". Le protocole Classic Bluetooth fournit un taux de transfert beaucoup plus élevé que Bluetooth Low Energy, au coût d'une consommation d'énergie supérieure.
Pour implémenter la prise en charge de Classic Bluetooth dans vos applications :
- Ajout d'un composant TBluetooth à votre application.
- Découvrez des périphériques distants et appairez-les.
- Etablissez la connexion aux périphériques appairés.
- Echangez des données avec les périphériques connectés.
Sommaire
Prise en charge des plates-formes
Plate-forme | Prise en charge ? |
---|---|
Windows* |
|
OS X |
|
iOS |
|
Android |
|
*Windows Server ne prend pas Bluetooth en charge (voir : General Bluetooth Support in Windows (EN)).
Protocole Classic Bluetooth sous iOS
La RTL ne prend pas en charge le Classic Bluetooth sous iOS. En effet, seuls les fabricants de matériel donnent accès au SDK pour le Classic Bluetooth. Pour de plus amples informations, voir Apple Developers: MFi Program (EN).
Ajout d'un composant TBluetooth à votre application
La bibliothèque RTL fournit un composant, TBluetooth, qui vous permet d'accéder à toutes les fonctionnalités Classic Bluetooth de la RTL. Déposez un composant TBluetooth
de la palette d'outils sur une fiche ou un module de données de votre application.
Découverte et appairage avec des périphériques distants
Pour que votre application puisse se connecter à une application distante avec Classic Bluetooth, les périphériques exécutant chaque application doivent être préalablement appairés entre eux par le biais du Bluetooth.
Faire en sorte qu'un périphérique puisse être découvert
L'un des deux périphériques doit pouvoir être découvert, c'est-à-dire que d'autres périphériques Bluetooth doivent être capables de détecter le périphérique via Classic Bluetooth.
Sur la plupart des plates-formes, vous pouvez demander à votre utilisateur de faire en sorte que le périphérique exécutant votre application puisse être découvert. Appelez TBluetooth.StartDiscoverable pour démarrer une requête et gérer l'événement TBluetooth.OnDiscoverableEnd. OnDiscoverableEnd
se produit si votre utilisateur accepte de rendre détectable le périphérique.
- Remarque : Vous ne pouvez demander qu'un périphérique ne puisse être découvert que pendant un certain laps de temps, avec des limites sur certaines plates-formes. Si ce délai est dépassé et que vous n'avez toujours pas effectué les étapes ci-après de découverte et d'appairage, vous devrez relancer une nouvelle requête de découverte de périphérique.
OS X n'autorise pas les applications à demander aux utilisateurs de rendre le périphérique détectable. Vous devez demander à votre utilisateur de faire en sorte que le périphérique puisse être découvert manuellement.
Découverte des périphériques distants
Seul l'un des périphériques peut être découvert, l'autre périphérique doit découvrir le périphérique détectable.
Appelez TBluetooth.DiscoverDevices sur l'autre périphérique pour commencer une opération de découverte afin d'obtenir la liste des périphériques distants détectables. Gérez l'événement TBluetooth.OnDiscoveryEnd afin d'obtenir la liste des périphériques distants découverts dès que l'opération de découverte se termine. Vous pouvez accéder à la dernière liste de périphériques découverts à tout moment par le biais de la propriété TBluetooth.LastDiscoveredDevices.
Appairage avec un périphérique distant
Dès que votre application obtient la liste des périphériques distants, vous pouvez commencer une requête d'appairage avec l'un de ces périphériques (TBluetoothDevice).
Pour commencer une requête d'appairage, appelez TBluetooth.Pair. L'opération d'appairage réelle est gérée par le système d'exploitation, qui guide votre utilisateur dans le processus d'appairage.
Pour savoir si l'opération d'appairage a réussi, vérifiez la valeur de TBluetoothDevice.IsPaired.
Etablissement d'une connexion à un périphérique distant appairé
Dès que le périphérique exécutant votre application est appairé avec un périphérique distant, vous pouvez vous connecter aux applications s'exécutant sur le périphérique distant via Classic Bluetooth.
Pour que deux applications s'exécutant sur des périphériques appairés se connectent via Classic Bluetooth :
- L'une des applications (serveur) doit publier un service. Pour publier un service, appelez TBluetooth.CreateServerSocket et enregistrez l'instance de TBluetoothServerSocket renvoyée.
- L'autre application (client) doit découvrir le service de l'application serveur et s'y connecter :
- Localisez dans TBluetooth.PairedDevices le périphérique distant (TBluetoothDevice) exécutant l'application serveur.
- Localisez dans TBluetoothDevice.LastServiceList le service (TBluetoothService) que vous souhaitez utiliser.
- Appelez TBluetoothDevice.CreateClientSocket pour obtenir un socket (TBluetoothSocket) à connecter au service distant. Pour spécifier le service distant, fournissez la propriété UUID du service à
TBluetoothDevice.CreateClientSocket
. - Appelez TBluetoothSocket.Connect pour démarrer la connexion.
- A partir de l'application serveur, appelez TBluetoothServerSocket.Accept pour accepter la connexion entrante.
TBluetoothServerSocket.Accept
renvoie un socket Classic Bluetooth régulier (TBluetoothSocket) déjà connecté au socket de l'application distante.
Envoi et réception des données
Dès qu'une instance de TBluetoothSocket est connectée à l'application distante, comme client ou serveur, vous pouvez envoyer ou recevoir des données de l'application distante sous forme d'un tableau d'octets. Pour envoyer et recevoir des données de l'application distante, utilisez respectivement TBluetoothSocket.SendData et TBluetoothSocket.ReadData.