Le Bluetooth à basse consommation (BLE), disponible sur Android 4.3 et versions ultérieures, crée des connexions courtes entre les appareils pour transférer des rafales de données. Le BLE reste en mode veille lorsqu'il n'est pas connecté. Il offre ainsi une bande passante inférieure et une consommation d'énergie réduite par rapport au Bluetooth classique. Le BLE est idéal pour les applications telles que les moniteurs de fréquence cardiaque ou les claviers sans fil. Pour utiliser le BLE, les appareils doivent disposer d'un chipset compatible.
Implémentation
Tous les profils d'application BLE actuels sont basés sur le profil d'attribut générique (GATT). Lorsqu'un appareil Android interagit avec un appareil BLE, l'appareil qui envoie des informations est le serveur et celui qui les reçoit est le client. Android inclut des API pour les développeurs pour le BLE, y compris des API pour les interactions entre les serveurs GATT et les clients GATT. Pour profiter pleinement des API BLE, implémentez les exigences HCI Bluetooth Android.
Modes d'appareil
Lorsqu'il utilise le BLE, un appareil Android peut agir comme un périphérique, un appareil central ou les deux. Le mode périphérique permet aux appareils d'envoyer des paquets de publicité. Le mode central permet aux appareils de rechercher des publicités. Un appareil Android qui agit à la fois comme périphérique et comme appareil central peut communiquer avec d'autres périphériques BLE tout en envoyant des publicités en mode périphérique. Les appareils compatibles avec Bluetooth 4.1 et versions antérieures ne peuvent utiliser le BLE qu'en mode central. Les chipsets d'appareils plus anciens ne sont peut-être pas compatibles avec le mode périphérique BLE.
Recherche BLE
Un appareil Android peut cibler et rechercher des appareils Bluetooth spécifiques plus efficacement lorsqu'il utilise le BLE. Les API BLE permettent aux développeurs d'applications de créer des filtres pour trouver des appareils avec moins d'implication du contrôleur hôte.
Recherche de localisation
Les services de localisation d'un appareil peuvent utiliser le Bluetooth pour détecter les balises Bluetooth et fournir une localisation plus précise. Voici comment les utilisateurs peuvent activer cette fonctionnalité :
- Accédez à Paramètres > Sécurité et localisation > Localisation.
- Vérifiez que le bouton Activé/Désactivé de la localisation est sur Activé.
- Accédez à Mode.
- Sélectionnez le mode Haute précision ou Économie de batterie.
Sur Android 11 et versions antérieures, les applications individuelles nécessitent des autorisations de localisation pour utiliser la recherche BLE, même si elles ne recherchent que des appareils auxquels se connecter. Si l'utilisateur désactive la recherche de localisation ou n'accorde pas d'autorisations de localisation à une application, celle-ci ne recevra aucun résultat de recherche BLE.
Sur Android 12 et versions ultérieures, les
BLUETOOTH_SCAN,
BLUETOOTH_ADVERTISE,
et
BLUETOOTH_CONNECT
autorisations peuvent permettre aux applications de rechercher des appareils à proximité sans avoir à
demander l'autorisation d'accéder à la position. Pour en savoir plus, consultez
Autorisations Bluetooth.
Les utilisateurs peuvent désactiver la recherche Bluetooth en arrière-plan au niveau du système en accédant à Paramètres > Sécurité et localisation > Localisation > Recherche et en cliquant sur le bouton Recherche Bluetooth pour le désactiver. Cela n'a aucune incidence sur la recherche BLE pour la localisation ou les appareils locaux.
Filtrer les résultats de recherche
Android 6.0 et versions ultérieures incluent la recherche BLE et la correspondance des filtres sur le contrôleur Bluetooth. Un appareil peut filtrer les résultats de recherche et signaler les événements trouvés et perdus liés aux appareils BLE au processeur d'application (AP). Le filtrage fonctionne également pour les recherches par lot, ce qui permet d'économiser de l'énergie, car l'appareil décharge la recherche BLE sur le micrologiciel. Les recherches par lot réduisent la fréquence à laquelle l'AP se réveille en raison de la recherche BLE d'appareils ou de balises.
La fonctionnalité OnFound/OnLost est implémentée dans le contrôleur Bluetooth, puis testée pour confirmer que les appareils BLE ne sont pas manqués lors des recherches. Cela permet d'économiser de l'énergie et peut également offrir les avantages suivants :
- Pour un événement
OnFound, l'AP principal se réveille lors de la découverte d'un appareil spécifique. - Pour un événement
OnLost, le PA se réveille lorsqu'un appareil spécifique est introuvable. - Les applications de framework reçoivent moins de notifications indésirables lorsqu'un appareil à proximité se trouve à portée.
- Les recherches continues permettent aux applications de framework d'être averties lorsqu'un appareil est hors de portée.
Un filtre de recherche peut être basé sur la découverte des publicités d'un appareil (événement OnFound). La couche Java peut spécifier des paramètres tels que la première découverte (ou un nombre spécifié de publicités depuis la première découverte).
Implémentez le filtrage BLE à l'aide de la
commande HCI de filtre de contenu de paquet publicitaire.