Bluetooth Low Energy (BLE), verfügbar in Android 4.3 und höher, stellt kurze Verbindungen zwischen Geräten her, um Datenstöße zu übertragen. BLE bleibt im Ruhemodus, wenn keine Verbindung besteht. Dadurch bietet BLE im Vergleich zu klassischem Bluetooth eine geringere Bandbreite und einen geringeren Stromverbrauch. Es ist ideal für Anwendungen wie einen Herzfrequenzmesser oder eine drahtlose Tastatur. Um BLE nutzen zu können, müssen Geräte über einen Chipsatz verfügen, der BLE unterstützt.
Implementierung
Alle aktuellen BLE-Anwendungsprofile basieren auf dem Generic Attribute Profile (GATT). 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 umfasst Entwickler-APIs für BLE , einschließlich APIs für Interaktionen zwischen GATT-Servern und GATT-Clients. Um die BLE-APIs vollständig zu nutzen, implementieren Sie die Android Bluetooth HCI-Anforderungen .
Gerätemodi
Bei der Verwendung von BLE kann ein Android-Gerät als Peripheriegerät, als Zentralgerät oder als beides fungieren. Im Peripheriemodus können Geräte Werbepakete senden. Im zentralen Modus können Geräte nach Werbung suchen. Ein Android-Gerät, das sowohl als Peripheriegerät als auch als Zentralgerät fungiert, kann mit anderen BLE-Peripheriegeräten kommunizieren und gleichzeitig Werbung im Peripheriemodus senden. Geräte, die Bluetooth 4.1 und früher unterstützen, können BLE nur im zentralen Modus nutzen. Ältere Gerätechipsätze unterstützen den BLE-Peripheriemodus möglicherweise nicht.
BLE-Scannen
Ein Android-Gerät kann bei Verwendung von BLE effizienter nach bestimmten Bluetooth-Geräten suchen und suchen. Mit BLE-APIs können App-Entwickler Filter erstellen, um Geräte mit geringerer Beteiligung des Host-Controllers zu finden.
Standortscan
Die Ortungsdienste eines Geräts können Bluetooth verwenden, um Bluetooth-Beacons zu erkennen und einen genaueren Standort bereitzustellen. So aktivieren Benutzer die Funktion:
- Gehen Sie zu Einstellungen > Sicherheit & Standort > Standort .
- Stellen Sie sicher, dass der Schalter „Standort ein / aus “ auf „Ein“ steht.
- Gehen Sie in den Modus .
- Wählen Sie entweder „Hohe Genauigkeit“ oder „Batteriesparmodus “.
In Android 11 oder niedriger benötigen einzelne Apps Standortberechtigungen, um BLE-Scannen zu verwenden, auch wenn sie nur scannen, um Geräte zu finden, mit denen sie eine Verbindung herstellen können. Wenn der Benutzer die Standortüberprüfung deaktiviert oder einer App keine Standortberechtigungen erteilt, erhält die App keine BLE-Überprüfungsergebnisse.
Ab Android 12 können Apps mit den Berechtigungen BLUETOOTH_SCAN
, BLUETOOTH_ADVERTISE
und BLUETOOTH_CONNECT
nach Geräten in der Nähe suchen, ohne dass eine Standortberechtigung angefordert werden muss. Weitere Informationen finden Sie unter Neue Bluetooth-Berechtigungen in Android 12 .
Benutzer können das Bluetooth-Hintergrundscannen auf Systemebene deaktivieren, indem sie zu Einstellungen > Sicherheit & Standort > Standort > Scannen gehen und den Schalter für das Bluetooth-Scannen deaktivieren. Dies hat keine Auswirkungen auf die BLE-Suche nach Standort oder lokalen Geräten.
Scan-Ergebnisse filtern
Android 6.0 und höher umfasst BLE-Scanning und Filteranpassung auf dem Bluetooth-Controller. Ein Gerät kann Scanergebnisse filtern und gefundene und verlorene Ereignisse im Zusammenhang mit BLE-Geräten an den Anwendungsprozessor (AP) melden. Die Filterung funktioniert auch bei Batch-Scans, was hilft, Strom zu sparen, da das BLE-Scannen auf die Firmware verlagert wird. Batch-Scans reduzieren die Häufigkeit, mit der der AP aufgrund von BLE-Scans nach Geräten oder Beacons aufwacht.
Die OnFound
/ OnLost
Funktion wird im Bluetooth-Controller implementiert und dann getestet, um zu bestätigen, dass BLE-Geräte bei Scans nicht übersehen werden. Dies führt zu Energieeinsparungen und kann außerdem die folgenden Vorteile bieten:
- Bei einem
OnFound
Ereignis wird der Haupt-AP aktiviert, sobald ein bestimmtes Gerät erkannt wird. - Bei einem
OnLost
Ereignis wacht der AP auf, 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 Ankündigungen eines Geräts (dem OnFound
Ereignis) basieren. Die Java-Schicht kann Parameter wie die erste Erkennung (oder eine bestimmte Anzahl von Ankündigungen seit der ersten Erkennung) angeben. Implementieren Sie die BLE-Filterung mit dem HCI-Befehl Advertising Packet Content Filter .