Bluetooth Low Energy

Bluetooth Low Energy (BLE), das in Android 4.3 und höher verfügbar ist, stellt kurze Verbindungen zwischen Geräten her, um Datenpakete zu übertragen. BLE bleibt im Ruhemodus, wenn keine Verbindung besteht. Dadurch bietet BLE im Vergleich zu Classic Bluetooth eine geringere Bandbreite und einen geringeren Stromverbrauch. BLE eignet sich ideal für Apps wie Herzfrequenzmesser oder kabellose Tastaturen. Für BLE benötigen Geräte einen Chipsatz, der BLE unterstützt.

Implementierung

Alle aktuellen BLE-App-Profile basieren auf dem GATT-Profil (Generic Attribute Profile). Wenn ein Android-Gerät mit einem BLE-Gerät interagiert, ist das Gerät, das Informationen sendet, der Server und das Gerät, das Informationen empfängt, der Client. Android enthält Entwickler-APIs für BLE, einschließlich APIs für die Interaktion zwischen GATT-Servern und GATT-Clients. Um die BLE APIs optimal nutzen zu können, müssen Sie die Android Bluetooth HCI Requirements implementieren.

Gerätemodi

Bei Verwendung von BLE kann ein Android-Gerät als Peripheriegerät, als zentrales Gerät oder als beides fungieren. Im Peripheral-Modus können Geräte Werbepakete senden. Im zentralen Modus können Geräte nach Werbung scannen. Ein Android-Gerät, das sowohl als Peripherie- als auch als zentrales Gerät fungiert, kann mit anderen BLE-Peripheriegeräten kommunizieren und gleichzeitig im Peripheriemodus Werbung senden. Geräte, die Bluetooth 4.1 und niedriger unterstützen, können BLE nur im zentralen Modus verwenden. Ältere Chipsätze unterstützen den BLE-Peripheriemodus möglicherweise nicht.

BLE-Suche

Ein Android-Gerät kann mit BLE bestimmte Bluetooth-Geräte effizienter ansteuern und nach ihnen suchen. Mit BLE-APIs können App-Entwickler Filter erstellen, um Geräte mit weniger Beteiligung des Hostcontrollers zu finden.

Standortscan

Die Standortdienste eines Geräts können Bluetooth verwenden, um Bluetooth-Beacons zu erkennen und einen genaueren Standort zu ermitteln. So aktivieren Nutzer die Funktion:

  1. Gehen Sie zu den Einstellungen > Sicherheit & Standort > Standort.
  2. Prüfen Sie, ob der Schieberegler für „Standort“ auf Ein steht.
  3. Rufen Sie den Modus auf.
  4. Wählen Sie den Modus Hohe Genauigkeit oder Energiesparmodus aus.

Unter Android 11 und niedriger benötigen einzelne Apps die Berechtigung zur Standortermittlung, um BLE-Scans durchzuführen, auch wenn sie nur nach Geräten suchen, mit denen sie eine Verbindung herstellen möchten. Wenn der Nutzer das Scannen nach Standorten deaktiviert oder einer App keine Standortberechtigungen erteilt, erhält die App keine BLE-Scanergebnisse.

In Android 12 und höher können Apps mit den Berechtigungen BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE und BLUETOOTH_CONNECT nach Geräten in der Nähe suchen, ohne die Berechtigung zur Standortermittlung anfordern zu müssen. Weitere Informationen finden Sie unter Bluetooth-Berechtigungen.

Nutzer können die Bluetooth-Hintergrundsuche auf Systemebene deaktivieren, indem sie zu Einstellungen > Sicherheit und Standort > Standort > Suche gehen und den Schalter Bluetooth-Suche auf „Aus“ stellen. Dies hat keine Auswirkungen auf die BLE-Suche nach Standorten oder lokalen Geräten.

Scanergebnisse filtern

Android 6.0 und höher umfasst BLE-Scanning und Filterabgleich auf dem Bluetooth-Controller. Ein Gerät kann Scanergebnisse filtern und Gefunden- und Verloren-Ereignisse im Zusammenhang mit BLE-Geräten an den Anwendungsprozessor (AP) melden. Das Filtern funktioniert auch für Batch-Scans, was dazu beiträgt, Strom zu sparen, da das Gerät BLE-Scans an die Firmware auslagert. Durch Batch-Scans wird die Häufigkeit reduziert, mit der der AP aufgrund von BLE-Scans nach Geräten oder Beacons aktiviert wird.

Die Funktion OnFound/OnLost wird im Bluetooth-Controller implementiert und dann getestet, um zu bestätigen, dass BLE-Geräte bei Scans nicht übersehen werden. Das spart Energie und kann auch folgende Vorteile bieten:

  • Bei einem OnFound-Ereignis wird der Haupt-AP aktiviert, wenn ein bestimmtes Gerät erkannt wird.
  • Bei einem OnLost-Ereignis wird der AP aktiviert, wenn ein bestimmtes Gerät nicht gefunden werden kann.
  • Framework-Apps erhalten weniger unerwünschte Benachrichtigungen, wenn sich ein Gerät in der Nähe in Reichweite befindet.
  • Durch kontinuierliche Scans können Framework-Apps benachrichtigt werden, wenn sich ein Gerät außerhalb der Reichweite befindet.

Ein Scanfilter kann auf der Erkennung der Werbung eines Geräts (dem OnFound-Ereignis) basieren. In der Java-Ebene können Parameter wie „first discovery“ (oder eine bestimmte Anzahl von Anzeigen seit der ersten Erkennung) angegeben werden. Implementieren Sie die BLE-Filterung mit dem HCI-Befehl zum Filtern von Inhalten in Werbepaketen.