Connexion à un périphérique Bluetooth A2DP à partir d’Android

Bluetooth A2DP(Advanced Audio Distribution Profile) est le profil Bluetooth Stereo qui définit comment un audio stéréo de haute qualité peut être diffusé d’un périphérique à un autre sur une connexion Bluetooth – par exemple, de la musique diffusée depuis un téléphone mobile vers des écouteurs sans fil.

Dans les anciennes versions d’Android, les classes qui sont nécessaires pour se connecter à un périphérique Bluetooth A2DP étaient cachées au niveau de l’API et dans les versions ultérieures à partir d’Android 4.0, elles sont rendues partiellement visibles.

Mais il existe une solution qui fonctionnera sur toutes les versions d’Android, vous pouvez facilement interagir avec n’importe quel périphérique A2DP en faisant simplement quelques appels IPC (Inter Process Communication).

Basiquement, ceci est réalisé par l’utilisation de l’AIDL (Android Interface Definition Language) qui permet essentiellement de définir l’interface de programmation sur laquelle le client et le service s’accordent afin de communiquer entre eux en utilisant l’IPC.

Comment connecter un appareil Bluetooth à n’importe quel appareil Android ?

Pour permettre la connexion à un périphérique Bluetooth à tout appareil android de manière programmatique, il suffit de suivre ces étapes simples.

Etape 1 : Créer des fichiers AIDL

Notre première étape consiste à mettre la main sur l’instance de la classe Bluetooth A2DP. Pour cela, ce que vous devez faire est de créer 2 fichiers AIDL d’abord dans votre dossier « src » du projet Android sous le package android.bluetooth comme suit :

Etape 2 : Ajouter des permissions

Puis, dans le manifeste Android, ajoutez des permissions pour l’utilisation de Bluetooth et des services suivants :

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

Étape 3 : Activer Bluetooth et obtenir des dispositifs appariés

D’abord, vous devez vous assurer que Bluetooth est activé. Pour demander que Bluetooth soit activé, appelez startActivityForResult() avec l’action Intent ACTION_REQUEST_ENABLE. Cela émettra une demande d’activation de Bluetooth par le biais des paramètres du système.

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

Vous pouvez obtenir les périphériques déjà appariés à partir de la classe BluetoothAdapter comme suit :

devices = BluetoothAdapter.getDefaultAdapter().bondedDevices

À partir des périphériques, vous pouvez obtenir votre périphérique de casque que vous voulez appairer

Étape 4 : Établir une connexion Bluetooth

Utiliser getProfileProxy()pour établir une connexion à l’objet proxy de profil associé au profil. Configurez un BluetoothProfile.ServiceListener(),Cet auditeur notifie les clients IPC BluetoothProfile lorsqu’ils ont été connectés ou déconnectés du service.

Etape 5 : Stream Audio URL

La prochaine étape consiste à streamer l’audio que vous voulez lire sur le casque Bluetooth connecté. Initialisez le MediaPlayer et lisez l’url de streaming comme ci-dessous:

Étape 6 : Déconnecter le périphérique

Finalement terminé avec la lecture de l’audio et que vous voulez déconnecter le périphérique fermer la connexion proxy, utilisez la méthode suivante pour déconnecter et libérer le MediaPlayer:

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.