Bluetooth A2DP(Advanced Audio Distribution Profile
) este profilul Bluetooth Stereo care definește modul în care poate fi transmis audio stereo de înaltă calitate de la un dispozitiv la altul prin intermediul unei conexiuni Bluetooth – de exemplu, muzică transmisă de la un telefon mobil la căști fără fir.
În versiunile mai vechi de Android, clasele care sunt necesare pentru a se conecta la un dispozitiv Bluetooth A2DP erau ascunse la nivel de API, iar în versiunile ulterioare, începând cu Android 4.0, sunt făcute vizibile parțial.
Există însă o soluție care va funcționa pe toate versiunile Android, puteți interacționa cu ușurință cu orice dispozitiv A2DP prin simpla efectuare a unor apeluri IPC (Inter Process Communication).
În principiu, acest lucru se realizează prin utilizarea limbajului AIDL (Android Interface Definition Language) care, practic, permite definirea interfeței de programare asupra căreia atât clientul, cât și serviciul sunt de acord pentru a comunica unul cu celălalt folosind IPC.
Cum să conectați un dispozitiv Bluetooth la orice dispozitiv Android?
Pentru a permite conectarea unui dispozitiv Bluetooth la orice dispozitiv Android în mod programatic, trebuie doar să urmați acești pași simpli.
Pasul 1: Creați fișierele AIDL
Primul nostru pas este să punem mâna pe instanța clasei Bluetooth A2DP. Pentru aceasta, ceea ce trebuie să faceți este să creați mai întâi 2 fișiere AIDL în folderul „src” al proiectului Android sub pachetul android.bluetooth
, după cum urmează :
Pasul 2: Adăugați permisiuni
Apoi, în Manifestul Android, adăugați permisiuni pentru utilizarea Bluetooth și a următoarelor servicii :
android.permission.BLUETOOTH
android.permission.BLUETOOTH_ADMIN
android.permission.BROADCAST_STICKY
android.permission.BIND_ACCESSIBILITY_SERVICE
Pasul 3: Activați Bluetooth și Obțineți dispozitive asociate
În primul rând, trebuie să vă asigurați dacă Bluetooth este activat. Pentru a solicita ca Bluetooth să fie activat, apelați startActivityForResult()
cu acțiunea ACTION_REQUEST_ENABLE
Intent. Aceasta va emite o cerere de activare a Bluetooth prin intermediul setărilor sistemului.
val enableBtIntent = Intent(BluetoothAdapter. ACTION_REQUEST_ENABLE)
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT)
Puteți obține dispozitivele deja împerecheate din clasa BluetoothAdapter după cum urmează:
devices = BluetoothAdapter.getDefaultAdapter().bondedDevices
Din dispozitive puteți obține dispozitivul cu cască pe care doriți să îl împerecheați
Pasul 4: Stabilirea conexiunii Bluetooth
Utilizați getProfileProxy()
pentru a stabili o conexiune cu obiectul proxy de profil asociat profilului. Configurați un BluetoothProfile.ServiceListener(),
Acest ascultător notifică BluetoothProfile
clienții IPC atunci când au fost conectați sau deconectați de la serviciu.
Pasul 5: Transmiteți URL-ul audio
Pasul următor este să transmiteți audio pe care doriți să îl redați pe casca Bluetooth conectată. Inițializați MediaPlayer și redați url-ul de streaming ca mai jos:
Pasul 6: Deconectați dispozitivul
În cele din urmă ați terminat cu redarea audio și doriți să deconectați dispozitivul închideți conexiunea proxy, utilizați următoarea metodă pentru a deconecta și elibera MediaPlayer:
.