Platforma Androida obsługuje stos sieciowy Bluetooth, który umożliwia urządzeniu bezprzewodową wymianę danych z innymi urządzeniami Bluetooth. Platforma aplikacji zapewnia dostęp do funkcji Bluetooth za pomocą interfejsów API Bluetooth. Te interfejsy API umożliwiają aplikacjom łączenie się z innymi urządzeniami Bluetooth, co pozwala na korzystanie z funkcji bezprzewodowych typu punkt-punkt i wielopunktowych.
Za pomocą interfejsów Bluetooth API aplikacja może:
- Wyszukaj inne urządzenia Bluetooth.
- Wysyłanie zapytania do lokalnego adaptera Bluetooth o sparowane urządzenia Bluetooth.
- ustanawianie kanałów RFCOMM,
- łączyć się z innymi urządzeniami za pomocą wykrywania usług;
- Przenoszenie danych na inne urządzenia i z nich.
- zarządzać wieloma połączeniami,
Ten dokument dotyczy klasycznego Bluetootha. Klasyczny Bluetooth to właściwy wybór w przypadku operacji, które bardziej obciążają baterię, takich jak strumieniowanie i komunikacja między urządzeniami. W przypadku urządzeń Bluetooth o niskim zapotrzebowaniu na energię rozważ użycie połączeń Bluetooth Low Energy.
W tej dokumentacji opisano różne profile Bluetooth i wyjaśniono, jak używać interfejsów Bluetooth API do wykonywania 4 głównych zadań niezbędnych do komunikacji przez Bluetooth:
- Konfiguruję Bluetooth.
- znajdowanie urządzeń, które są sparowane lub dostępne w pobliżu;
- Łączenie urządzeń.
- Przenoszenie danych między urządzeniami.
Podstawy
Aby urządzenia z obsługą Bluetootha mogły przesyłać dane między sobą, muszą najpierw utworzyć kanał komunikacji w procesie parowania. Jedno urządzenie, czyli urządzenie wykrywalne, udostępnia się dla przychodzących żądań połączenia. Inne urządzenie znajduje urządzenie wykrywalne za pomocą procesu wykrywania usług. Gdy urządzenie wykrywalne zaakceptuje prośbę o sparowanie, oba urządzenia zakończą proces wiązania, podczas którego wymieniają się kluczami bezpieczeństwa. Urządzenia zapisują te klucze w pamięci podręcznej do późniejszego użycia.
Po zakończeniu procesów parowania i łączenia oba urządzenia wymieniają się informacjami. Po zakończeniu sesji urządzenie, które zainicjowało prośbę o sparowanie, zwalnia kanał, który połączył je z urządzeniem wykrywalnym. Urządzenia pozostają jednak powiązane, więc mogą automatycznie połączyć się ponownie podczas kolejnej sesji, o ile znajdują się w swoim zasięgu i żadne z nich nie usunęło powiązania.
Korzystanie z interfejsów Bluetooth API wymaga zadeklarowania kilku uprawnień w pliku manifestu. Następnie otwórz BluetoothAdapter i sprawdź, czy na urządzeniu jest dostępny Bluetooth. Jeśli Bluetooth jest dostępny, wykonaj te 3 czynności:
- Znajdowanie urządzeń Bluetooth w pobliżu, zarówno tych, które są już sparowane, jak i nowych.
- Nawiązywanie połączenia z urządzeniem Bluetooth
- Przenoszenie danych za pomocą połączonego urządzenia
Niektóre urządzenia używają określonego profilu Bluetooth, który deklaruje, jakie dane udostępnia.
Najważniejsze klasy i interfejsy
Wszystkie interfejsy Bluetooth API są dostępne w pakiecie android.bluetooth.
Oto klasy i interfejsy, których potrzebujesz do tworzenia połączeń Bluetooth:
BluetoothAdapter- Reprezentuje lokalną kartę Bluetooth (radio Bluetooth).
BluetoothAdapterto punkt wejścia dla wszystkich interakcji Bluetooth. Za pomocą tej klasy możesz wykrywać inne urządzenia Bluetooth, wysyłać zapytania o listę powiązanych (sparowanych) urządzeń, tworzyć instancjeBluetoothDeviceprzy użyciu znanego adresu MAC i tworzyćBluetoothServerSocketdo nasłuchiwania komunikacji z innych urządzeń. BluetoothDevice- Reprezentuje zdalne urządzenie Bluetooth. Użyj tej klasy, aby poprosić o połączenie z urządzeniem zdalnym przez
BluetoothSocketlub uzyskać informacje o urządzeniu, takie jak nazwa, adres, klasa i stan powiązania. BluetoothSocket- Reprezentuje interfejs gniazda Bluetooth (podobny do TCP
Socket). Jest to punkt połączenia, który umożliwia aplikacji wymianę danych z innym urządzeniem Bluetooth za pomocąInputStreamiOutputStream. BluetoothServerSocket- Reprezentuje otwarte gniazdo serwera, które nasłuchuje żądań przychodzących (podobnie jak
ServerSocketTCP). Aby połączyć 2 urządzenia, jedno z nich musi otworzyć gniazdo serwera za pomocą tej klasy. Gdy zdalne urządzenie Bluetooth wysyła prośbę o połączenie z tym urządzeniem, urządzenie akceptuje połączenie, a następnie zwraca połączone urządzenieBluetoothSocket. BluetoothClass- Opisuje ogólne cechy i możliwości urządzenia Bluetooth. Jest to zestaw właściwości tylko do odczytu, który definiuje klasy i usługi urządzenia. Chociaż te informacje dają przydatną wskazówkę dotyczącą typu urządzenia, atrybuty tej klasy nie muszą opisywać wszystkich profili i usług Bluetooth obsługiwanych przez urządzenie.
BluetoothProfile- Interfejs reprezentujący profil Bluetooth. Profil Bluetooth to specyfikacja interfejsu bezprzewodowego do komunikacji między urządzeniami przez Bluetooth. Przykładem jest profil obsługiwany bez użycia rąk. Więcej informacji o profilach znajdziesz w artykule Profile Bluetooth.
BluetoothHeadset- Zapewnia obsługę zestawów słuchawkowych Bluetooth, których można używać z telefonami komórkowymi. Obejmuje to zarówno profil zestawu słuchawkowego Bluetooth, jak i profil obsługiwany bez użycia rąk (wersja 1.5).
BluetoothA2dp- Określa, jak dźwięk wysokiej jakości może być przesyłany strumieniowo z jednego urządzenia na drugie przez połączenie Bluetooth przy użyciu profilu Advanced Audio Distribution Profile (A2DP).
BluetoothHealth- Reprezentuje serwer proxy profilu urządzenia medycznego, który steruje usługą Bluetooth.
BluetoothHealthCallback- Klasa abstrakcyjna, której używasz do implementowania wywołań zwrotnych
BluetoothHealth. Musisz rozszerzyć tę klasę i zaimplementować metody wywołania zwrotnego, aby otrzymywać aktualizacje o zmianach stanu rejestracji aplikacji i stanu kanału Bluetooth. BluetoothHealthAppConfiguration- Reprezentuje konfigurację aplikacji, którą aplikacja innej firmy do monitorowania stanu zdrowia przez Bluetooth rejestruje, aby komunikować się ze zdalnym urządzeniem do monitorowania stanu zdrowia przez Bluetooth.
BluetoothProfile.ServiceListener- Interfejs, który powiadamia klientów komunikacji między procesami (IPC)
BluetoothProfileo połączeniu z usługą wewnętrzną, która obsługuje dany profil, lub o rozłączeniu z nią.