Bluetooth

Ikona Android Bluetooth HAL

Android udostępnia domyślny stos Bluetooth, który obsługuje zarówno Bluetooth Classic, jak i Bluetooth Low Energy (BLE). Urządzenia z Androidem mogą tworzyć osobiste sieci lokalne za pomocą Bluetootha, aby wysyłać i odbierać dane z urządzeń Bluetooth w pobliżu.

W Androidzie 4.3 i nowszym stos protokołów Bluetooth Androida umożliwia implementację BLE. Aby w pełni korzystać z interfejsów BLE API, postępuj zgodnie z wymaganiami dotyczącymi interfejsu HCI Bluetootha na Androidzie. Urządzenia z Androidem z odpowiednim chipsetem mogą obsługiwać klasyczną wersję Bluetootha lub obie wersje: klasyczną i BLE. BLE nie jest wstecznie zgodny ze starszymi chipsetami Bluetooth.

W Androidzie 8.0 stos Bluetootha jest w pełni zgodny ze standardem Bluetooth 5. Aby korzystać z dostępnych funkcji Bluetooth 5, urządzenie musi mieć certyfikowany chipset Bluetooth 5.

Architektura Androida

Aplikacja Bluetooth komunikuje się z procesem Bluetooth za pomocą interfejsu Binder. Proces Bluetooth używa interfejsu Java Native Interface (JNI) do komunikacji ze stosem Bluetooth i zapewnia programistom dostęp do różnych profili Bluetooth. Ten diagram przedstawia ogólną strukturę stosu Bluetooth:

Diagram przedstawiający warstwy stosu Bluetooth w Androidzie.

Rysunek 1. Architektura Bluetootha na Androidzie.

platforma aplikacji
Na poziomie struktury aplikacji znajduje się kod aplikacji, który korzysta z interfejsów API android.bluetooth do interakcji ze sprzętem Bluetooth. Wewnętrznie ten kod wywołuje proces Bluetooth za pomocą mechanizmu IPC Binder.
Aplikacja Bluetooth
Aplikacja Bluetooth, znajdująca się w packages/modules/Bluetooth/android/app, jest pakowana jako aplikacja na Androida i implementuje profile Bluetootha na warstwie frameworka Androida. Ta aplikacja wywołuje stos Bluetooth za pomocą JNI.
JNI
Kod JNI powiązany z android.bluetooth znajduje się w packages/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 interfejs HAL Bluetooth i dostosowuje go za pomocą rozszerzeń i zmian konfiguracji.
wdrażanie dostawcy,
Urządzenia dostawcy komunikują się 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 HIDL Bluetooth, przekaż pliki interfejsu Bluetooth do narzędzia do generowania HIDL. Pliki interfejsu znajdują się w lokalizacji hardware/interfaces/bluetooth.

Opracowywanie stosu Bluetooth

Stos Bluetooth w Androidzie jest w pełni kwalifikowanym stosem Bluetooth. Lista kwalifikacji znajduje się na stronie internetowej Bluetooth SIG (wymaga zalogowania) w sekcji QDID 169365.

Główny stos Bluetootha znajduje się w folderze packages/modules/Bluetooth. Rozwój odbywa się w ramach AOSP, a każde zaangażowanie w ten proces jest mile widziane.