Le Bluetooth à basse consommation (BLE), disponible dans 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é. Cela permet au BLE de fournir une bande passante plus faible et une consommation d'énergie réduite par rapport au Bluetooth classique. Le BLE est idéal pour les applications telles qu'un cardiofréquencemètre ou un clavier sans fil. Pour utiliser le BLE, les appareils doivent être équipés 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 Android Bluetooth HCI.
Modes de l'appareil
Lorsqu'il utilise BLE, un appareil Android peut servir de périphérique, d'appareil central ou des deux. Le mode périphérique permet aux appareils d'envoyer des paquets publicitaires. Le mode central permet aux appareils de rechercher des annonces. Un appareil Android qui sert à la fois de périphérique et d'appareil central peut communiquer avec d'autres périphériques BLE tout en envoyant des annonces 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. Il est possible que les chipsets d'anciens appareils ne soient 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 Bluetooth Low Energy. 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.
Analyse de la position
Les services de localisation d'un appareil peuvent utiliser le Bluetooth pour détecter les balises Bluetooth et fournir une position plus précise. Voici comment les utilisateurs peuvent activer la fonctionnalité :
- Accédez à Paramètres > Sécurité et position > Position.
- Vérifiez que le bouton Activé/Désactivé de la localisation est bien activé.
- Accédez à Mode.
- Sélectionnez le mode Haute précision ou Économie de batterie.
Dans Android 11 et les versions antérieures, les applications individuelles ont besoin de l'autorisation d'accéder à la position pour utiliser la recherche BLE, même si elles ne l'utilisent que pour trouver des appareils auxquels se connecter. Si l'utilisateur désactive le scan de localisation ou n'accorde pas à une application les autorisations d'accéder à la position, l'application ne recevra aucun résultat de scan BLE.
Dans Android 12 et versions ultérieures, les autorisations BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE et BLUETOOTH_CONNECT 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 l'analyse Bluetooth en arrière-plan au niveau du système en accédant à Paramètres > Sécurité et localisation > Localisation > Recherche, puis en désactivant l'option Recherche Bluetooth. Cela n'a aucune incidence sur la détection BLE pour la localisation ou les appareils à proximité.
Filtrer les résultats d'analyse
Android 6.0 et versions ultérieures incluent l'analyse BLE et la correspondance des filtres sur le contrôleur Bluetooth. Un appareil peut filtrer les résultats de l'analyse et signaler les événements found (trouvé) et lost (perdu) liés aux appareils BLE au processeur d'application (AP). Le filtrage fonctionne également pour les analyses par lot, ce qui permet d'économiser de l'énergie, car l'appareil décharge l'analyse BLE sur le micrologiciel. Les analyses par lot réduisent la fréquence à laquelle le point d'accès se réactive en raison de l'analyse BLE à la recherche d'appareils ou de balises.
La fonctionnalité OnFound/OnLost est implémentée dans le contrôleur Bluetooth, puis testée pour vérifier que les appareils BLE ne sont pas manqués lors des analyses. Cela permet de réaliser des économies d'énergie, mais peut également offrir les avantages suivants :
- Pour un événement
OnFound, le PA 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 du framework reçoivent moins de notifications indésirables lorsqu'un appareil à proximité se trouve à portée.
- Les analyses continues permettent aux applications du framework d'être averties lorsqu'un appareil est hors de portée.
Un filtre d'analyse peut être basé sur la découverte des annonces 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é d'annonces depuis la première découverte).
Implémentez le filtrage BLE à l'aide de la commande HCI de filtrage du contenu des paquets publicitaires.