Configurer le Bluetooth

Pour que votre application puisse communiquer via Bluetooth ou Bluetooth à basse consommation, vous devez vérifier que le Bluetooth est pris en charge sur l'appareil et, le cas échéant, assurez-vous qu'elle est activée. Notez que cette vérification n'est nécessaire que si L'attribut android:required dans l'entrée du fichier manifeste <uses-feature.../> est définie sur false.

Si le Bluetooth n'est pas pris en charge, vous devez désactiver en douceur toutes les connexions caractéristiques. Si le Bluetooth est pris en charge, mais désactivé, vous pouvez demander que activer le Bluetooth sans quitter l'application.

La première étape est ajout des autorisations Bluetooth à votre fichier manifeste afin d'utiliser les API suivantes.

Une fois les autorisations en place, la configuration Bluetooth s'effectue en deux étapes. à l'aide de BluetoothAdapter:

  1. Obtenez le BluetoothAdapter.

    Le BluetoothAdapter est requis pour toute activité Bluetooth. La BluetoothAdapter représente l'adaptateur Bluetooth propre à l'appareil (le une radio Bluetooth). Pour obtenir une BluetoothAdapter, vous devez d'abord disposer d'un Context Utilisez ce contexte pour obtenir Une instance de BluetoothManager Google Cloud. Vous appelez BluetoothManager#getAdapter génère un objet BluetoothAdapter. Si getAdapter() renvoie une valeur nulle, cela signifie que l’appareil n’est pas compatible avec le Bluetooth.

    Exemple :

    Kotlin

    val bluetoothManager: BluetoothManager = getSystemService(BluetoothManager::class.java)
    val bluetoothAdapter: BluetoothAdapter? = bluetoothManager.getAdapter()
    if (bluetoothAdapter == null) {
      // Device doesn't support Bluetooth
    }
    

    Java

    BluetoothManager bluetoothManager = getSystemService(BluetoothManager.class);
    BluetoothAdapter bluetoothAdapter = bluetoothManager.getAdapter();
    if (bluetoothAdapter == null) {
      // Device doesn't support Bluetooth
    }
    
  2. Activez le Bluetooth.

    Ensuite, vous devez vous assurer que le Bluetooth est activé. Appeler isEnabled() jusqu'à vérifiez si le Bluetooth est actuellement activé. Si cette méthode renvoie "false", alors le Bluetooth est désactivé. Pour demander l'activation du Bluetooth, appelez startActivityForResult(), en transmettant ACTION_REQUEST_ENABLE une action d'intent. Cet appel envoie une demande d'activation du Bluetooth via le les paramètres système (sans arrêter votre application).

    Exemple :

    Kotlin

    if (bluetoothAdapter?.isEnabled == false) {
      val enableBtIntent = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE)
      startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT)
    }
    

    Java

    if (!bluetoothAdapter.isEnabled()) {
      Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
      startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
    }
    

Une boîte de dialogue s'affiche pour demander à l'utilisateur l'autorisation d'activer le Bluetooth, comme illustré dans figure 1. Si l'utilisateur donne son autorisation, le système commence à activer le Bluetooth, et le focus revient à votre application une fois que le processus est terminé (ou échoué).


Figure 1 : Boîte de dialogue d'activation du Bluetooth.

La constante REQUEST_ENABLE_BT transmise à startActivityForResult() est un entier défini localement qui doit être supérieur ou égal à 0. Le système cette constante vous est transmise onActivityResult() l'implémentation en tant que paramètre requestCode.

Si l'activation du Bluetooth réussit, votre activité reçoit l'événement Code de résultat RESULT_OK dans Rappel onActivityResult(). Si le Bluetooth n'a pas été activé en raison d'une erreur (ou l'utilisateur a répondu « Refuser »), le code de résultat est RESULT_CANCELED

Votre application peut éventuellement écouter l'événement ACTION_STATE_CHANGED l'intent de diffusion, que le système diffuse chaque fois que l'état du Bluetooth des modifications. Cette diffusion contient des champs supplémentaires EXTRA_STATE et EXTRA_PREVIOUS_STATE, contenant respectivement les nouveaux et les anciens états Bluetooth. Valeurs possibles pour ces champs supplémentaires sont STATE_TURNING_ON, STATE_ON, STATE_TURNING_OFF, et STATE_OFF. Écouter cette annonce peut être utile si votre application doit détecter un environnement d'exécution les modifications apportées à l'état du Bluetooth.

Conseil:L'activation de la visibilité active automatiquement Bluetooth Si vous prévoyez d'activer systématiquement la visibilité des appareils avant si vous effectuez une activité Bluetooth, vous pouvez ignorer l'étape 2 des étapes précédentes.

Une fois le Bluetooth activé sur l'appareil, vous pouvez utiliser à la fois les versions Bluetooth classique et Bluetooth à basse consommation.

Avec la version Bluetooth classique, vous pouvez rechercher des appareils Bluetooth et se connecter à des appareils Bluetooth.

Pour la technologie Bluetooth à basse consommation, vous pouvez rechercher des appareils BLE, vous connecter à un serveur GATT et transférer des données BLE.