
Android udostępnia domyślny stos Bluetooth, który obsługuje zarówno Bluetooth Classic, jak i Bluetooth Low Energy (BLE). Za pomocą Bluetooth urządzenia z Androidem mogą tworzyć osobiste sieci lokalne do wysyłania i odbierania danych z urządzeń Bluetooth znajdujących się w pobliżu.
W Androidzie 4.3 i nowszych wersjach stos Bluetooth Androida umożliwia implementację BLE. Aby w pełni korzystać z interfejsów BLE API, postępuj zgodnie z wymaganiami Android Bluetooth HCI. Urządzenia z Androidem z kwalifikowanym chipsetem mogą implementować Bluetooth Classic lub Bluetooth Classic i BLE. BLE nie jest wstecznie zgodny ze starszymi chipsetami Bluetooth.
W Androidzie 8.0 stos Bluetooth jest w pełni kwalifikowany do Bluetooth 5. Aby korzystać z dostępnych funkcji Bluetooth 5, urządzenie musi mieć chipset kwalifikowany do Bluetooth 5.
Architektura Androida
Aplikacja Bluetooth komunikuje się z procesem Bluetooth za pomocą Bindera. Proces Bluetooth używa interfejsu Java Native Interface (JNI) do komunikowania się ze stosem Bluetooth i zapewnia deweloperom dostęp do różnych profili Bluetooth. Ten diagram przedstawia ogólną strukturę stosu Bluetooth:

Rysunek 1. Architektura Bluetooth w Androidzie.
- framework aplikacji
- Na poziomie frameworka aplikacji znajduje się kod aplikacji, który używa
android.bluetoothinterfejsów API do interakcji ze sprzętem Bluetooth. Wewnętrznie ten kod wywołuje proces Bluetooth za pomocą mechanizmu Binder IPC. - Aplikacja Bluetooth
- Aplikacja Bluetooth, która znajduje się w
packages/modules/Bluetooth/android/app, jest spakowana jako aplikacja na Androida i implementuje profile Bluetooth na warstwie frameworka Androida. Ta aplikacja wywołuje stos Bluetooth za pomocą JNI. - JNI
- Kod JNI powiązany z
android.bluetoothznajduje się wpackages/modules/Bluetooth/android/app/jni. Kod JNI wywołuje stos Bluetooth, gdy występują określone operacje Bluetooth, np. gdy wykrywane są urządzenia. - Stos Bluetooth
- Domyślny stos Bluetooth jest dostępny w AOSP i znajduje się w
packages/modules/Bluetooth/system. Stos implementuje ogólny Bluetooth HAL i dostosowuje go za pomocą rozszerzeń i zmian konfiguracji. - implementacja dostawcy
- Urządzenia dostawcy wchodzą w interakcję ze stosem Bluetooth za pomocą języka definicji interfejsu HAL (HIDL).
HIDL
HIDL definiuje interfejs między
stosem Bluetooth a implementacją dostawcy. Aby wygenerować pliki Bluetooth HIDL, przekaż pliki interfejsu Bluetooth do narzędzia do generowania HIDL. Pliki interfejsu znajdują się w
hardware/interfaces/bluetooth.
Tworzenie stosu Bluetooth
Stos Bluetooth Androida jest w pełni kwalifikowanym stosem Bluetooth. Lista kwalifikacji znajduje się na stronie Bluetooth SIG (wymaga logowania) w sekcji QDID 169365.
Główny stos Bluetooth znajduje się w
packages/modules/Bluetooth.
Prace rozwojowe są prowadzone w AOSP, a wszelkie zaangażowanie w jego rozwój jest mile widziane.