Bluetooth Low Energy

Bluetooth Low Energy (BLE), dostępny w Androidzie 4.3 i nowszych, tworzy krótkie połączenia między urządzeniami, aby przesyłać krótkie dane. BLE pozostaje w trybie uśpienia, gdy nie jest połączony. Dzięki temu BLE zapewnia mniejszą przepustowość i mniejsze zużycie energii w porównaniu z Bluetooth Classic. Jest to idealne rozwiązanie dla aplikacji takich jak pulsometr czy klawiatura bezprzewodowa. Aby korzystać z BLE, urządzenia muszą mieć chipset obsługujący BLE.

Implementacja

Wszystkie obecne profile aplikacji BLE są oparte na ogólnym profilu atrybutów (GATT). Gdy urządzenie z Androidem wchodzi w interakcję z urządzeniem BLE, urządzenie, które wysyła informacje, jest serwerem, a urządzenie, które je odbiera, jest klientem. Android zawiera interfejsy API dla deweloperów BLE, w tym interfejsy API do interakcji między serwerami GATT a klientami GATT. Aby w pełni wykorzystać interfejsy API BLE, wdrocz wymagania dotyczące interfejsu HCI Bluetootha na Androidzie.

Tryby urządzenia

Podczas korzystania z BLE urządzenie z Androidem może działać jako urządzenie peryferyjne, urządzenie centralne lub oba te urządzenia. Tryb urządzenia peryferyjnego 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 jako urządzenie peryferyjne 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 lub starszy mogą korzystać z BLE tylko w trybie centralnym. Starsze chipsety urządzeń mogą nie obsługiwać trybu urządzeń peryferyjnych BLE.

Skanowanie BLE

Urządzenie z Androidem może szybciej wyszukiwać określone urządzenia Bluetooth, jeśli korzysta z BLE. Interfejsy BLE umożliwiają deweloperom tworzenie filtrów do znajdowania urządzeń z mniejszym zaangażowaniem ze strony hosta.

Skanowanie lokalizacji

Usługi lokalizacyjne urządzenia mogą używać Bluetootha do wykrywania beaconów Bluetooth i określania dokładniejszej lokalizacji. Oto jak użytkownicy mogą włączyć tę funkcję:

  1. Kliknij Ustawienia > Bezpieczeństwo i lokalizacja > Lokalizacja.
  2. Sprawdź, czy przełącznik lokalizacji Wł./Wył. jest w pozycji Wł.
  3. Otwórz Tryb.
  4. Wybierz tryb Wysoka dokładność lub Oszczędzanie baterii.

W Androidzie 11 lub starszym poszczególne aplikacje wymagają uprawnień do lokalizacji, aby móc korzystać ze skanowania BLE, nawet jeśli skanowanie służy tylko do znajdowania 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.

Od Androida 12 uprawnienia BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE i BLUETOOTH_CONNECT mogą umożliwiać aplikacjom skanowanie urządzeń w pobliżu bez konieczności żądania uprawnień do lokalizacji. Więcej informacji znajdziesz w artykule Nowe uprawnienia Bluetooth w Androidzie 12.

Użytkownicy mogą wyłączyć skanowanie w tle Bluetooth na poziomie systemu, o ile to możliwe, przez przejście do Ustawień > Bezpieczeństwo i Lokalizacja > Lokalizacja > Skanowanie i wyłączenie przełącznika Skanowanie Bluetooth. Nie ma to wpływu na skanowanie BLE w celu wykrywania lokalizacji ani urządzeń lokalnych.

Filtrowanie wyników skanowania

Android 6.0 i nowsze obsługuje skanowanie BLE i dopasowywanie filtra w kontrolerze Bluetooth. Urządzenie może filtrować wyniki skanowania i przekazywać do procesora aplikacji (AP) zdarzenia znalezionautracona związane z urządzeniami BLE. Filtrowanie działa również w przypadku zbiorczych skanowań, co pomaga oszczędzać energię, ponieważ skanowanie BLE jest przenoszone do oprogramowania układowego. Skanowanie zbiorcze zmniejsza częstotliwość budzenia AP z powodu skanowania BLE w celu wykrywania urządzeń lub beaconów.

Funkcja OnFound/OnLost jest implementowana w kontrolerze Bluetooth, a następnie testowana, aby potwierdzić, że urządzenia BLE nie są pomijane podczas skanowania. Pozwala to oszczędzać energię i przynosi następujące korzyści:

  • W przypadku zdarzenia OnFound główny punkt dostępu jest uruchamiany po wykryciu konkretnego urządzenia.
  • W przypadku zdarzenia OnLost punkt dostępu wybudza się, gdy nie może znaleźć określonego urządzenia.
  • Aplikacje frameworka otrzymują mniej niechcianych powiadomień, gdy w pobliżu znajduje się urządzenie.
  • Ciągłe skanowanie umożliwia aplikacjom frameworka otrzymywanie powiadomień, gdy urządzenie znajduje się poza zasięgiem.

Filtr skanowania może być oparty na wykrywaniu reklam na urządzeniu (zdarzenie OnFound). Warstwa Java może określać parametry takie jak pierwsze wykrycie (lub określona liczba reklam od pierwszego wykrycia). Wdroż filtrowanie BLE za pomocą polecenia HCI filtru treści pakietu reklamowego.