Od Androida 16 platforma Androida zawiera usługę atrybutów ogólnych (GATT) o nazwie Android Information Service (AIS), która umożliwia urządzeniom Bluetooth odczytywanie poziomu interfejsu API Androida jako właściwości GATT tej usługi. Ta usługa pozwala producentom urządzeń Bluetooth wiedzieć, czy urządzenie peryferyjne Bluetooth jest sparowane z urządzeniem centralnym z systemem Android i zarządzać logiką specjalizowaną na podstawie poziomu interfejsu API.
Usługa informacji Androida (AIS)
AIS to standardowa usługa GATT. Na urządzeniu może być tylko 1 instancja AIS. Identyfikator UUID głównej usługi to e73e0001-ef1b-4e74-8291-2e4f3164f3b5
.
Właściwość poziomu interfejsu API Androida (identyfikator UUID:
e73e0002-ef1b-4e74-8291-2e4f3164f3b5
) zawiera poziom interfejsu API urządzenia w postaci bez znaku 32-bitowej liczby całkowitej w postaci binarnej (little-endian). Długość wartości atrybutu Android API level to 4 oktety (np. poziom interfejsu API 36 to 0x24_00_00_00
). Gdy urządzenie jest wykrywalne, wartość atrybutu Android API level jest czytelna bez uwierzytelniania ani autoryzacji.
Gdy urządzenie nie jest wykrywalne, cecha poziomu interfejsu API Androida jest czytelna tylko po uwierzytelnieniu i autoryzacji.
Odkrywanie usługi
Urządzenie Bluetooth ma rolę klienta GATT, a urządzenie z Androidem – rolę serwera. Aby wykrywać AIS i czytać poziom interfejsu API Androida, urządzenia Bluetooth używają procedur profilu GATT, takich jak wykrywanie podstawowej usługi, wykrywanie właściwości i odczytywanie wartości właściwości. Szczegółowe informacje o tych procedurach znajdziesz w specyfikacji profilu GATT.
Poziom interfejsu API jest definiowany przez właściwość systemową ro.build.version.sdk
. Jeśli nie można wykryć usługi podstawowej, oznacza to, że właściwość systemu nie jest zdefiniowana lub jej wartość jest pusta albo system operacyjny hosta nie jest Androidem.
Weryfikacja
Aby sprawdzić, czy można wykryć AIS, przeprowadź test ręczny, parując urządzenie peryferyjne Bluetooth z urządzeniem z Androidem, a następnie wyszukując identyfikator UUID usługi AIS w wykrytych usługach podstawowych.