Profils Bluetooth

L'API Bluetooth est compatible avec l'utilisation de profils Bluetooth. A Le profil Bluetooth est une spécification d'interface sans fil pour la communication entre les appareils, comme le profil mains libres. Pour un mobile appareil pour se connecter à un casque sans fil, les deux appareils doivent être compatibles avec le Profil mains libres.

L'API Bluetooth fournit des implémentations pour les attributs profils:

  • Casque : Le profil Casque est compatible avec les casques Bluetooth utilisés avec les téléphones portables. Android offre la classe BluetoothHeadset, qui est un proxy pour contrôler le service de casque Bluetooth. Cela inclut pour les casques Bluetooth et les profils mains libres (v1.5). BluetoothHeadset inclut la prise en charge des commandes AT. Pour en savoir plus à ce sujet, consultez Commandes AT spécifiques aux fournisseurs.
  • A2DP : Le profil A2DP (Advanced Audio Distribution Profile) définit un son de haute qualité peut être diffusé en streaming d'un appareil à un autre via un . Android offre BluetoothA2dp, qui est un proxy pour contrôler le service Bluetooth A2DP.
  • Appareil de santé. Android prend en charge l'appareil de santé Bluetooth (HDP). Cela vous permet de créer des applis qui communiquent via le Bluetooth avec des appareils de santé qui prennent en charge le Bluetooth, comme les cardiofréquencemètres, le sang mètres, thermomètres, balances, etc. Pour obtenir la liste des appareils et les codes de spécialisation correspondants pour les données de l'appareil, consultez l'article HDP Données relatives à l'appareil Spécialisations Ces valeurs sont également référencées dans la spécification ISO/IEEE 11073-20601 [7]. sous la forme MDC_DEV_SPEC_PROFILE_* dans l'annexe des codes de nomenclature. Pour plus informations sur le HDP, consultez Health Device Profile.

Voici les étapes de base à suivre pour utiliser un profil:

  1. Obtenez l'adaptateur par défaut, comme décrit dans la section Configuration Bluetooth :
  2. Configurez un BluetoothProfile.ServiceListener Cet écouteur informe BluetoothProfile clients quand ils ont été connectés ou déconnectés du service.
  3. Utilisez getProfileProxy() pour établir une connexion à l'objet proxy de profil associé au profil. Dans l'exemple suivant, l'objet proxy de profil est une instance de BluetoothHeadset
  4. Dans onServiceConnected(), obtenir un handle vers l'objet de proxy de profil.
  5. Une fois que vous disposez de l'objet proxy de profil, utilisez-le pour surveiller l'état du connexion et d'effectuer d'autres opérations pertinentes pour ce profil.

L'extrait de code suivant montre comment se connecter à un proxy BluetoothHeadset afin de contrôler le profil du casque:

Kotlin

var bluetoothHeadset: BluetoothHeadset? = null

// Get the default adapter
val bluetoothAdapter: BluetoothAdapter? = BluetoothAdapter.getDefaultAdapter()

private val profileListener = object : BluetoothProfile.ServiceListener {

    override fun onServiceConnected(profile: Int, proxy: BluetoothProfile) {
        if (profile == BluetoothProfile.HEADSET) {
            bluetoothHeadset = proxy as BluetoothHeadset
        }
    }

    override fun onServiceDisconnected(profile: Int) {
        if (profile == BluetoothProfile.HEADSET) {
            bluetoothHeadset = null
        }
    }
}

// Establish connection to the proxy.
bluetoothAdapter?.getProfileProxy(context, profileListener, BluetoothProfile.HEADSET)

// ... call functions on bluetoothHeadset

// Close proxy connection after use.
bluetoothAdapter?.closeProfileProxy(BluetoothProfile.HEADSET, bluetoothHeadset)

Java

BluetoothHeadset bluetoothHeadset;

// Get the default adapter
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

private BluetoothProfile.ServiceListener profileListener = new BluetoothProfile.ServiceListener() {
    public void onServiceConnected(int profile, BluetoothProfile proxy) {
        if (profile == BluetoothProfile.HEADSET) {
            bluetoothHeadset = (BluetoothHeadset) proxy;
        }
    }
    public void onServiceDisconnected(int profile) {
        if (profile == BluetoothProfile.HEADSET) {
            bluetoothHeadset = null;
        }
    }
};

// Establish connection to the proxy.
bluetoothAdapter.getProfileProxy(context, profileListener, BluetoothProfile.HEADSET);

// ... call functions on bluetoothHeadset

// Close proxy connection after use.
bluetoothAdapter.closeProfileProxy(bluetoothHeadset);

Commandes AT spécifiques au fournisseur

Les applications peuvent s'inscrire pour recevoir des diffusions système d'AT prédéfinies et spécifiques au fournisseur. envoyées par les casques (comme une commande Plantronics +XEVENT). Par exemple : une application peut recevoir des annonces qui indiquent le niveau de batterie d'un appareil connecté et pourrait avertir l'utilisateur ou prendre d'autres mesures si nécessaire. Créer une diffusion récepteur de ACTION_VENDOR_SPECIFIC_HEADSET_EVENT pour gérer les commandes AT spécifiques au fournisseur pour le casque.

Profil de santé de l'appareil

Android est compatible avec le profil d'appareil de santé Bluetooth (HDP). L'état Bluetooth L'API inclut les classes BluetoothHealth, BluetoothHealthCallback, et BluetoothHealthAppConfiguration, décrites à la section Classes clés et inter-interfaces.

Lorsque vous utilisez l'API Bluetooth Health, il est utile de comprendre concepts:

Source
Un appareil de santé, tel qu'une balance, un glucomètre ou un thermomètre, transmet des données médicales à un appareil connecté, comme un téléphone ou une tablette Android.
Lavabo
Appareil connecté qui reçoit les données médicales. Dans une application HDP, le est représenté par un objet BluetoothHealthAppConfiguration.
Enregistrements
Processus utilisé pour enregistrer un récepteur afin de communiquer avec un état particulier appareil.
Connexion
Processus permettant d'ouvrir un canal entre un appareil de santé (source) et un appareil connecté (récepteur).

Créer une application HDP

Voici les étapes de base de la création d'une application HDP:

  1. Obtenez une référence à l'objet de proxy BluetoothHealth. Comme pour les casque et appareils avec profil A2DP, vous devez appeler getProfileProxy() avec un BluetoothProfile.ServiceListener et les Type de profil HEALTH pour établir une connexion avec l'objet proxy de profil.

  2. Créer un BluetoothHealthCallback et enregistrer une configuration d'application (BluetoothHealthAppConfiguration) qui sert de récepteur de santé.

  3. Établissez une connexion à un appareil de santé.

  4. Une fois connecté à un appareil Santé, lire et écrire sur l'appareil appareil à l'aide du descripteur de fichier. Les données reçues doivent être interprétées à l'aide d'un gestionnaire d'état, qui met en œuvre la norme IEEE 11073 caractéristiques.

  5. Lorsque vous avez terminé, fermez le canal Santé et annulez l'enregistrement de l'application. La chaîne se ferme en cas d'inactivité prolongée