aperçu
BluetoothA2dpSink
API 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
BluetoothA2dpSink
Une instance de est obtenue BluetoothAdapter
via 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
connect
La 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 BlueToothAdapter
l'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_CHANGED
l'é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.)
disconnect
Méthode de déconnexion du protocole A2DP.
Le paramètre d'entrée est l'instance de périphérique Bluetooth (via BlueToothAdapter
l'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_CHANGED
l'é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
getConnectedDevices
Méthode :
vous pouvez obtenir l'instance de périphérique actuelle connectée au protocole A2DP
getDevicesMatchingConnectionStates
Mé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_DISCONNECTED
ou .BluetoothProfile.STATE_DISCONNECTING
getConnectionState
Mé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_DISCONNECTING
quatre.
getAudioConfig
Mé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 BluetoothAudioConfig
dans la classe, y compris le format audio et d'autres informations.
setPriority
Mé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_ON
BluetoothA2dpSink.PRIORITY_OFF
PRIORITY_ON
PRIORITY_OFF
getPriority
setConnectionPolicy
Mé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
isAudioPlaying
Mé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).