Bluetooth à basse consommation

Le Bluetooth à basse consommation (BLE), disponible dans Android 4.3 et versions ultérieures, crée de courtes connexions 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. Il 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 l'appareil qui reçoit des informations 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 exploiter pleinement les API BLE, implémentez les Exigences Android Bluetooth HCI.

Modes de l'appareil

Lorsqu'il utilise le BLE, un appareil Android peut agir en tant qu'appareil périphérique, en tant qu'appareil central ou les deux à la fois. Le mode périphérique permet aux appareils d'envoyer des paquets d'annonces. Le mode central permet aux appareils de rechercher des annonces. Un appareil Android agissant à la fois comme périphérique et comme 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 le Bluetooth 4.1 et les 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 avec le BLE. Les API BLE permettent aux développeurs d'applications de créer des filtres pour détecter les 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. Pour activer cette fonctionnalité, procédez comme suit:

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

Sous Android 11 ou version antérieure, les applications individuelles ont besoin d'autorisations d'accéder à la position 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 d'autorisations d'accéder à la position à une application, celle-ci ne recevra aucun résultat de recherche BLE.

À partir d'Android 12, 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 la section Nouvelles autorisations Bluetooth sous Android 12.

Les utilisateurs peuvent désactiver la recherche en arrière-plan Bluetooth 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 ni sur les appareils locaux.

Filtrer les résultats de l'analyse

Android 6.0 et versions ultérieures incluent la numérisation BLE et la mise en correspondance des filtres sur le contrôleur Bluetooth. Un appareil peut filtrer les résultats de la recherche et signaler les événements trouvés et perdus liés aux appareils BLE au processeur d'application (PA). Le filtrage fonctionne également pour les analyses par lot, ce qui permet d'économiser de l'énergie, car la numérisation BLE est transférée au micrologiciel. Les analyses par lot réduisent la fréquence de réveil du point d'accès en raison de la recherche d'appareils ou de balises via la technologie BLE.

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 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étection d'un appareil spécifique.
  • Pour un événement OnLost, le point d'accès se réveille lorsqu'un appareil spécifique ne peut pas être trouvé.
  • Les applications Framework reçoivent moins de notifications indésirables lorsqu'un appareil à proximité se trouve à portée.
  • Les analyses continues permettent aux applications du framework de recevoir une notification 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 Advertising Packet Content Filter.