Bluetooth à basse consommation

Bluetooth Low Energy (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. 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. Il est idéal pour les applications telles qu'un moniteur de fréquence cardiaque ou un clavier sans fil. Pour utiliser BLE, les appareils doivent disposer d'un chipset prenant en charge BLE.

Mise en œuvre

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 les informations est le serveur et l'appareil qui reçoit les informations est le client. Android inclut des API de développement pour BLE , notamment des API pour les interactions entre les serveurs du GATT et les clients du GATT. Pour tirer pleinement parti des API BLE, implémentez les exigences Android Bluetooth HCI .

Modes de l'appareil

Lors de l'utilisation de 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 publicitaires. Le mode central permet aux appareils de rechercher des publicités. 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 publicités en mode périphérique. Les appareils prenant en charge Bluetooth 4.1 et versions antérieures ne peuvent utiliser BLE qu'en mode central. Les chipsets d'appareils plus anciens peuvent ne pas prendre en charge le mode périphérique BLE.

Numérisation BLE

Un appareil Android peut cibler et rechercher des appareils Bluetooth spécifiques plus efficacement lorsqu'il utilise BLE. Les API BLE permettent aux développeurs d'applications de créer des filtres pour rechercher des appareils avec moins d'implication de la part du contrôleur hôte.

Analyse de localisation

Les services de localisation d'un appareil peuvent utiliser 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 localisation > Localisation .
  2. Vérifiez que la bascule Emplacement On / Off est en position On .
  3. Allez dans Mode .
  4. Sélectionnez le mode Haute précision ou Économie de batterie .

Sous Android 11 ou version antérieure, les applications individuelles nécessitent des autorisations de localisation pour utiliser l'analyse BLE, même si elles analysent uniquement pour trouver des appareils auxquels se connecter. Si l'utilisateur désactive l'analyse de localisation ou n'accorde pas d'autorisations de localisation à une application, l'application ne recevra aucun résultat d'analyse 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 besoin de demander l'autorisation de localisation. Pour plus d'informations, consultez Nouvelles autorisations Bluetooth dans Android 12 .

Les utilisateurs peuvent désactiver l'analyse en arrière-plan Bluetooth au niveau du système en accédant à Paramètres > Sécurité et localisation > Emplacement > Analyse et en désactivant la bascule pour l'analyse Bluetooth . Cela n'affecte pas l'analyse BLE pour l'emplacement ou les appareils locaux.

Filtrage des résultats de l'analyse

Android 6.0 et versions ultérieures incluent la numérisation BLE et la correspondance de filtres sur le contrôleur Bluetooth. Un appareil peut filtrer les résultats d'analyse 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 analyses par lots, ce qui permet d'économiser de l'énergie lorsque l'analyse BLE est déchargée sur le micrologiciel. Les analyses par lots réduisent la fréquence de réveil du point d'accès en raison de l'analyse BLE des appareils ou des 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 dans les analyses. Cela permet des économies d’é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 , le point d'accès se réveille lorsqu'un périphérique spécifique est introuvable.
  • Les applications Framework reçoivent moins de notifications indésirables lorsqu'un appareil à proximité est à portée.
  • Les analyses continues permettent aux applications-cadres d'être averties lorsqu'un appareil est hors de portée.

Un filtre d'analyse peut être basé sur la découverte des publicités 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 Advertising Packet Content Filter .