Ansluta till en Bluetooth A2DP-enhet från Android

Bluetooth A2DP(Advanced Audio Distribution Profile) är en Bluetooth-stereoprofil som definierar hur högkvalitativt stereoljud kan strömmas från en enhet till en annan via en Bluetooth-anslutning – till exempel musik från en mobiltelefon till trådlösa hörlurar.

I äldre Android-versioner var de klasser som krävs för att ansluta till en Bluetooth A2DP-enhet dolda på API-nivå och i de senare versionerna från och med Android 4.0 är de delvis synliga.

Men det finns en lösning som fungerar på alla Android-versioner, du kan enkelt interagera med vilken A2DP-enhet som helst genom att helt enkelt göra några IPC-samtal (Inter Process Communication).

Detta uppnås i princip genom att använda AIDL (Android Interface Definition Language) som i princip gör det möjligt att definiera det programmeringsgränssnitt som både klienten och tjänsten kommer överens om för att kommunicera med varandra med hjälp av IPC.

Hur ansluter man en Bluetooth-enhet till en Android-enhet?

För att möjliggöra anslutningen till en Bluetooth-enhet till en Android-enhet programmatiskt behöver du bara följa dessa enkla steg.

Steg 1: Skapa AIDL-filer

Vårt första steg är att få tag på instansen av Bluetooth A2DP-klassen. För detta måste du skapa två AIDL-filer först i din mapp ”src” i Android-projektet under paket android.bluetooth enligt följande :

Steg 2: Lägg till behörigheter

I Android Manifest lägger du till behörigheter för användning av Bluetooth och följande tjänster :

android.permission.BLUETOOTH
android.permission.BLUETOOTH_ADMIN
android.permission.BROADCAST_STICKY
android.permission.BIND_ACCESSIBILITY_SERVICE

Steg 3: Aktivera Bluetooth och hämta parade enheter

Först måste du se till att Bluetooth är aktiverat. Om du vill begära att Bluetooth ska aktiveras ringer du startActivityForResult() med ACTION_REQUEST_ENABLE action Intent. Detta kommer att utfärda en begäran om att aktivera Bluetooth via systeminställningarna.

val enableBtIntent = Intent(BluetoothAdapter. ACTION_REQUEST_ENABLE)
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT)

Du kan hämta de redan parade enheterna från BluetoothAdapter-klassen på följande sätt:

devices = BluetoothAdapter.getDefaultAdapter().bondedDevices

Från enheterna kan du hämta den headset-enhet som du vill para ihop

Steg 4: Etablera Bluetooth-anslutning

Använd getProfileProxy()för att etablera en anslutning till det profil-proxyobjekt som är associerat med profilen. Konfigurera en BluetoothProfile.ServiceListener(), Denna lyssnare meddelar BluetoothProfile IPC-klienter när de har anslutits till eller kopplats från tjänsten.

Steg 5: Strömma ljud-URL

Nästa steg är att strömma ljudet som du vill spela upp på det anslutna Bluetooth-headsetet. Initialisera MediaPlayer och spela upp den strömmande url:

Steg 6: Koppla bort enheten

Slutligt är du klar med att spela upp ljudet och vill koppla bort enheten och stänga proxy-anslutningen, använd följande metod för att koppla bort och släppa MediaPlayer:

Lämna ett svar

Din e-postadress kommer inte publiceras.