Bluetooth Low Energy

Bluetooth Low Energy (BLE), dostępny w systemie Android 4.3 i nowszych wersjach, umożliwia tworzenie krótkich połączeń między urządzeniami w celu przesyłania strumieni danych. BLE pozostaje w trybie uśpienia, gdy nie jest podłączony. Dzięki temu BLE zapewnia niższą przepustowość i mniejsze zużycie energii w porównaniu do klasycznego Bluetooth. Idealnie nadaje się do zastosowań takich jak czujnik tętna czy klawiatura bezprzewodowa. Aby korzystać z BLE, urządzenia muszą mieć chipset obsługujący BLE.

Realizacja

Wszystkie aktualne profile aplikacji BLE opierają się na ogólnym profilu atrybutów (GATT). Kiedy urządzenie z systemem Android wchodzi w interakcję z urządzeniem BLE, urządzeniem wysyłającym informacje jest serwer, a urządzeniem odbierającym informacje jest klient. Android zawiera interfejsy API dla programistów dla BLE , w tym interfejsy API do interakcji między serwerami GATT i klientami GATT. Aby w pełni wykorzystać interfejsy API BLE, zaimplementuj wymagania Android Bluetooth HCI .

Tryby urządzenia

Podczas korzystania z BLE urządzenie z systemem Android może działać jako urządzenie peryferyjne, urządzenie centralne lub jedno i drugie. Tryb peryferyjny umożliwia urządzeniom wysyłanie pakietów reklamowych. Tryb centralny umożliwia urządzeniom skanowanie w poszukiwaniu reklam. Urządzenie z Androidem, działające zarówno jako urządzenie peryferyjne, jak i centralne, może komunikować się z innymi urządzeniami peryferyjnymi BLE podczas wysyłania reklam w trybie peryferyjnym. Urządzenia obsługujące Bluetooth 4.1 i starsze wersje mogą korzystać z BLE tylko w trybie centralnym. Starsze chipsety urządzeń mogą nie obsługiwać trybu peryferyjnego BLE.

Skanowanie BLE

Urządzenie z Androidem może efektywniej namierzać i skanować w poszukiwaniu określonych urządzeń Bluetooth, korzystając z BLE. Interfejsy API BLE umożliwiają twórcom aplikacji tworzenie filtrów w celu wyszukiwania urządzeń przy mniejszym zaangażowaniu kontrolera hosta.

Skanowanie lokalizacji

Usługi lokalizacyjne urządzenia mogą wykorzystywać technologię Bluetooth do wykrywania sygnałów nawigacyjnych Bluetooth i zapewniania dokładniejszej lokalizacji. W ten sposób użytkownicy włączają tę funkcję:

  1. Wybierz Ustawienia > Bezpieczeństwo i lokalizacja > Lokalizacja .
  2. Sprawdź, czy przełącznik Wł. / Wył. lokalizacji znajduje się w pozycji .
  3. Przejdź do trybu .
  4. Wybierz opcję Wysoka dokładność lub Tryb oszczędzania baterii .

W systemie Android 11 lub starszym poszczególne aplikacje wymagają uprawnień do lokalizacji, aby móc korzystać ze skanowania BLE, nawet jeśli skanują tylko w celu znalezienia urządzeń, z którymi można się połączyć. Jeśli użytkownik wyłączy skanowanie lokalizacji lub nie przyzna aplikacji uprawnień do lokalizacji, aplikacja nie otrzyma żadnych wyników skanowania BLE.

W systemie Android 12 uprawnienia BLUETOOTH_SCAN , BLUETOOTH_ADVERTISE i BLUETOOTH_CONNECT umożliwiają aplikacjom skanowanie w poszukiwaniu urządzeń w pobliżu bez konieczności proszenia o pozwolenie na lokalizację. Aby uzyskać więcej informacji, zobacz Nowe uprawnienia Bluetooth w systemie Android 12 .

Użytkownicy mogą wyłączyć skanowanie w tle Bluetooth na poziomie systemu, wybierając Ustawienia > Bezpieczeństwo i lokalizacja > Lokalizacja > Skanowanie i wyłączając przełącznik skanowania Bluetooth . Nie ma to wpływu na skanowanie BLE w poszukiwaniu lokalizacji ani urządzeń lokalnych.

Filtrowanie wyników skanowania

Android 6.0 i nowsze wersje umożliwiają skanowanie BLE i dopasowywanie filtrów na kontrolerze Bluetooth. Urządzenie może filtrować wyniki skanowania i raportować znalezione i utracone zdarzenia związane z urządzeniami BLE do procesora aplikacji (AP). Filtrowanie działa również w przypadku skanowań wsadowych, co pomaga oszczędzać energię, ponieważ skanowanie BLE jest przenoszone do oprogramowania sprzętowego. Skanowania wsadowe zmniejszają częstotliwość wybudzania punktu dostępowego w wyniku skanowania BLE w poszukiwaniu urządzeń lub sygnałów nawigacyjnych.

Funkcja OnFound / OnLost jest zaimplementowana w kontrolerze Bluetooth i następnie testowana w celu potwierdzenia, że ​​urządzenia BLE nie są pomijane podczas skanów. Zapewnia to oszczędność energii, a także może zapewnić następujące korzyści:

  • W przypadku zdarzenia OnFound główny punkt dostępowy budzi się po wykryciu określonego urządzenia.
  • W przypadku zdarzenia OnLost punkt dostępowy budzi się, gdy nie można znaleźć określonego urządzenia.
  • Aplikacje Framework otrzymują mniej niechcianych powiadomień, gdy pobliskie urządzenie znajduje się w zasięgu.
  • Ciągłe skanowanie umożliwia powiadamianie aplikacji frameworkowych, gdy urządzenie znajduje się poza zasięgiem.

Filtr skanowania może opierać się na wykryciu reklam urządzenia (zdarzenie OnFound ). Warstwa Java może określać parametry takie jak pierwsze wykrycie (lub określona liczba ogłoszeń od pierwszego wykrycia). Zaimplementuj filtrowanie BLE za pomocą polecenia HCI filtru treści pakietów reklamowych .