Développement lié à la voiture Android Bluetooth 3 : Récepteur audio Bluetooth BluetoothA2dpSink

aperçu

BluetoothA2dpSinkAPI publique pour contrôler les profils de récepteur Bluetooth A2DP. En termes simples, il s'agit d'un agent d'exploitation côté haut-parleur Bluetooth, qui peut contrôler la déconnexion de la connexion du protocole Bluetooth A2DP et interroger les informations de configuration.

initialisation

BluetoothA2dpSinkUne instance de est obtenue BluetoothAdaptervia getProfileProxy.
Exemple:

    public void getA2DPSinkProxy(Context context){
    
    
        BluetoothAdapter.getDefaultAdapter().getProfileProxy(context, new BluetoothProfile.ServiceListener() {
    
    
            @Override
            public void onServiceConnected(int profile, BluetoothProfile proxy) {
    
    
                BluetoothA2dpSink bluetoothA2dpSink = (BluetoothA2dpSink) proxy;
                //此处拿到的代理实例为bluetoothA2dpSink。
            }

            @Override
            public void onServiceDisconnected(int profile) {
    
    

            }
        },BluetoothProfile.A2DP_SINK);
    }

Connexion et déconnexion du protocole A2DP

connectLa méthode est utilisée pour la connexion au protocole A2DP.
Le paramètre d'entrée est l'instance de périphérique Bluetooth (via BlueToothAdapterl'acquisition).

Actuellement, le système ne prend en charge qu'une seule connexion de protocole A2DP. L'API déconnectera automatiquement les appareils connectés avant de se connecter.

Cette API renvoie false dans des cas tels que le profil sur l'appareil est connecté ou que le Bluetooth n'est pas activé. Lorsque cette API renvoie true, BluetoothA2dpSink.ACTION_CONNECTION_STATE_CHANGEDl'état de la connexion peut être surveillé via la diffusion. (En ce qui concerne la diffusion liée à Bluetooth, un article séparé sera ouvert plus tard.)

disconnectMéthode de déconnexion du protocole A2DP.
Le paramètre d'entrée est l'instance de périphérique Bluetooth (via BlueToothAdapterl'acquisition).

Cette API renverra false dans des cas tels que lorsque le profil sur le périphérique Bluetooth n'est pas connecté. Lorsque cette API renvoie true, BluetoothA2dpSink.ACTION_CONNECTION_STATE_CHANGEDl'état de déconnexion peut être surveillé via la diffusion.

Si la déconnexion a été initiée par un appareil distant, le changement d'état est STATE_CONNECTED-> STATE_DISCONNECTED.
Si la déconnexion a été initiée par le périphérique hôte (local), l'état est STATE_CONNECTED-> STATE_DISCONNECTING-> STATE_DISCONNECTED.

Obtenir des informations sur la configuration et l'état

getConnectedDevicesMéthode :
vous pouvez obtenir l'instance de périphérique actuelle connectée au protocole A2DP

getDevicesMatchingConnectionStatesMéthode :
Obtenez une liste de tous les appareils qui correspondent à l'état de la connexion.
L'état de la connexion est l'un des BluetoothProfile.STATE_CONNECTING, BluetoothProfile.STATE_DISCONNECTEDou .BluetoothProfile.STATE_DISCONNECTING

getConnectionStateMéthode :
Obtenir l'état actuel de la connexion au protocole A2DP. L'état comprend BluetoothPrifile.STATE_CONNECTED, BluetoothPrifile.STATE_CONNECTING, BluetoothPrifile.STATE_DISCONNECTED, BluetoothPrifile.STATE_DISCONNECTINGquatre.

getAudioConfigMéthode :
obtenez la configuration audio actuelle de l'appareil source A2DP, ou null si l'appareil n'a pas de configuration audio.
Les informations de configuration audio se trouvent BluetoothAudioConfigdans la classe, y compris le format audio et d'autres informations.

setPriorityMéthode :
définissez les autorisations. Les paramètres d'entrée sont l'instance de périphérique distant et la capacité d'autorisation qui doivent être définies. L'autorisation est l'une des et
. : A2DP peut être connecté. : A2DP ne peut pas être connecté. Les autorisations de périphérique peuvent être obtenues via des méthodes.BluetoothA2dpSink.PRIORITY_ONBluetoothA2dpSink.PRIORITY_OFF
PRIORITY_ON
PRIORITY_OFF
getPriority

setConnectionPolicyMéthode :
définir la stratégie de connexion du protocole. Les paramètres d'entrée sont les périphériques et les politiques de connexion à définir.
La stratégie de connexion est l'une des BluetoothProfile.CONNECTION_POLICY_ALLOWED, BluetoothProfile.CONNECTION_POLICY_FORBIDDEN. : A2DP est connecté par défaut : A2DP n'est pas connecté par défaut : La stratégie de connexion est inconnue (l'appareil n'est pas configuré ou l'appareil n'est pas appairé) La stratégie de connexion peut être obtenue via la méthode .BluetoothProfile.CONNECTION_POLICY_UNKNOWN
CONNECTION_POLICY_ALLOWED
CONNECTION_POLICY_FORBIDDEN
CONNECTION_POLICY_UNKNOWN
getConnectionPolicy

isAudioPlayingMéthode :
indique si l'appareil lit de l'audio via A2DP.

Conclusion:

Le protocole audio Bluetooth n'est pas seulement utilisé dans les voitures. Si l'extrémité de réception audio est un appareil Android, il peut utiliser cet agent pour fonctionner (par exemple : haut-parleur intelligent Android).

Je suppose que tu aimes

Origine blog.csdn.net/NAME_CJF/article/details/126872133
conseillé
Classement