Bluetooth A2DP(Advanced Audio Distribution Profile
) is het Bluetooth Stereo profiel dat definieert hoe hoge kwaliteit stereo audio gestreamd kan worden van het ene apparaat naar het andere via een Bluetooth verbinding – bijvoorbeeld muziek gestreamd van een mobiele telefoon naar een draadloze koptelefoon.
In oudere Android versies waren de klassen die nodig zijn om verbinding te maken met een Bluetooth A2DP apparaat verborgen in het API-niveau en in de latere versies vanaf Android 4.0, is het gedeeltelijk zichtbaar gemaakt.
Maar er is een oplossing die zal werken op alle Android versies, kunt u eenvoudig communiceren met een A2DP apparaat door simpelweg het maken van een aantal IPC (Inter Process Communication) aanroepen.
Basically, dit wordt bereikt door het gebruik van AIDL (Android Interface Definition Language), die in principe maakt het mogelijk om de programmering interface die zowel de client en service overeen te komen om te communiceren met elkaar met behulp van IPC.
Hoe maak je een Bluetooth-apparaat verbinding met een Android-apparaat?
Om de verbinding met een Bluetooth-apparaat op een Android-apparaat programmatisch mogelijk te maken, hoeft u alleen maar deze eenvoudige stappen te volgen.
Stap 1: Maak AIDL-bestanden
Onze eerste stap is om greep te krijgen op de instantie van Bluetooth A2DP klasse. Daarvoor moet u eerst 2 AIDL-bestanden maken in uw map “src” van Android Project onder pakket android.bluetooth
als volgt :
Stap 2: Machtigingen toevoegen
Voeg vervolgens in het Android Manifest machtigingen toe voor het gebruik van Bluetooth en de volgende diensten :
android.permission.BLUETOOTH
android.permission.BLUETOOTH_ADMIN
android.permission.BROADCAST_STICKY
android.permission.BIND_ACCESSIBILITY_SERVICE
Stap 3: Bluetooth inschakelen en Gekoppelde apparaten ophalen
U moet eerst controleren of Bluetooth is ingeschakeld. Om te vragen of Bluetooth is ingeschakeld, roept u startActivityForResult()
op met de ACTION_REQUEST_ENABLE
actie Intent. Dit zal een verzoek doen om Bluetooth in te schakelen via de systeeminstellingen.
val enableBtIntent = Intent(BluetoothAdapter. ACTION_REQUEST_ENABLE)
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT)
U kunt de reeds gekoppelde apparaten als volgt uit de BluetoothAdapter klasse halen:
devices = BluetoothAdapter.getDefaultAdapter().bondedDevices
Van de apparaten kunt u het headset-apparaat halen dat u wilt koppelen
Stap 4: Bluetooth-verbinding tot stand brengen
Gebruik getProfileProxy()
om een verbinding tot stand te brengen met het profiel proxy-object dat aan het profiel is gekoppeld. Stel een BluetoothProfile.ServiceListener(),
op Deze luisteraar meldt BluetoothProfile
IPC-clients wanneer ze met de service zijn verbonden of ervan zijn losgekoppeld.
Stap 5: Stream Audio URL
De volgende stap is het streamen van audio die u wilt afspelen op de aangesloten Bluetooth Headset. Initialiseer de MediaPlayer en speel de streaming url af zoals hieronder:
Stap 6: Verbreek de verbinding met het apparaat
Eindig klaar met het afspelen van de audio en u wilt de verbinding met het apparaat verbreken en de proxy-verbinding verbreken, gebruik dan de volgende methode om de MediaPlayer te ontkoppelen en vrij te geven: