Bluetooth A2DP(Advanced Audio Distribution Profile
) to profil Bluetooth Stereo, który definiuje, w jaki sposób wysokiej jakości dźwięk stereo może być przesyłany strumieniowo z jednego urządzenia do drugiego za pośrednictwem połączenia Bluetooth – na przykład muzyka przesyłana strumieniowo z telefonu komórkowego do słuchawek bezprzewodowych.
W starszych wersjach Androida klasy, które są wymagane do połączenia się z urządzeniem Bluetooth A2DP były ukryte na poziomie API, a w późniejszych wersjach od Androida 4.0 są częściowo widoczne.
Jest jednak rozwiązanie, które będzie działać na wszystkich wersjach Androida, możesz łatwo wejść w interakcję z dowolnym urządzeniem A2DP, po prostu wykonując kilka wywołań IPC (Inter Process Communication).
Podstawowo, jest to osiągane przez użycie AIDL (Android Interface Definition Language), który w zasadzie pozwala zdefiniować interfejs programowania, że zarówno klient i usługa zgadzają się na w celu komunikowania się ze sobą za pomocą IPC.
Jak podłączyć urządzenie Bluetooth do dowolnego urządzenia z systemem Android?
Aby umożliwić połączenie z urządzeniem Bluetooth do dowolnego urządzenia z systemem Android programowo, wystarczy wykonać te proste kroki.
Krok 1: Tworzenie plików AIDL
Naszym pierwszym krokiem jest uchwycenie instancji klasy Bluetooth A2DP. W tym celu należy utworzyć 2 pliki AIDL w folderze „src” projektu Android w pakiecie android.bluetooth
w następujący sposób:
Krok 2: Dodaj uprawnienia
Następnie w Manifeście Androida dodaj uprawnienia do korzystania z Bluetooth i następujących usług :
android.permission.BLUETOOTH
android.permission.BLUETOOTH_ADMIN
android.permission.BROADCAST_STICKY
android.permission.BIND_ACCESSIBILITY_SERVICE
Krok 3: Włącz Bluetooth i Get Paired Devices
Po pierwsze, musisz się upewnić, czy Bluetooth jest włączony. Aby zażądać włączenia Bluetooth, zadzwoń do startActivityForResult()
z ACTION_REQUEST_ENABLE
akcji Intent. Spowoduje to wydanie żądania włączenia Bluetooth za pośrednictwem ustawień systemowych.
val enableBtIntent = Intent(BluetoothAdapter. ACTION_REQUEST_ENABLE)
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT)
Możesz uzyskać już sparowane urządzenia z klasy BluetoothAdapter w następujący sposób:
devices = BluetoothAdapter.getDefaultAdapter().bondedDevices
Z urządzeń możesz uzyskać urządzenie z zestawem słuchawkowym, które chcesz sparować
Krok 4: Ustanowienie połączenia Bluetooth
Użyj getProfileProxy()
, aby ustanowić połączenie z obiektem proxy związanym z profilem. Set up a BluetoothProfile.ServiceListener(),
This listener notifies BluetoothProfile
IPC clients when they have been connected to or disconnected from the service.
Step 5: Stream Audio URL
Następnym krokiem jest strumieniowanie dźwięku, który ma być odtwarzany na podłączonym zestawie słuchawkowym Bluetooth. Zainicjuj MediaPlayer i odtwórz adres url jak poniżej:
Krok 6: Odłącz urządzenie
W końcu skończyłeś z odtwarzaniem dźwięku i chcesz odłączyć urządzenie i zamknąć połączenie proxy, użyj następującej metody, aby odłączyć i zwolnić MediaPlayer:
.