Bluetooth à basse consommation

Le Bluetooth à basse consommation (BLE, Bluetooth Low Energy), 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 inférieure et une consommation d'énergie réduite par rapport au Bluetooth classique. 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 fonctionnant sous 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 de développeur 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 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'appareils plus anciens 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 localisation plus précise. Voici comment les utilisateurs activent la fonctionnalité :

  1. Accédez à Paramètres > Sécurité et position > Position.
  2. Vérifiez que le bouton Activé/Désactivé est bien activé.
  3. Accédez à Mode.
  4. Sélectionnez le mode Haute précision ou Économie de batterie.

Dans Android 11 et les 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 position ou n'accorde pas à une application les autorisations d'accès à la position, l'application ne recevra aucun résultat de recherche 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 locaux.

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 pour les appareils ou les 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 analyses. Cela permet d'économiser de l'énergie et peut également offrir les avantages suivants :

  • Pour un événement OnFound, le point d'accès principal se réveille lors de la découverte d'un appareil spécifique.
  • Pour un événement OnLost, l'AP 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 de balayage peut être basé sur la découverte des annonces d'un appareil (l'é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 filtrage du contenu des paquets publicitaires.