Configura Bluetooth

Per consentire alla tua app di comunicare tramite Bluetooth o Bluetooth Low Energy: devi verificare che il Bluetooth sia supportato sul dispositivo e, se lo è, verifica che sia abilitato. Tieni presente che questo controllo è necessario solo se L'attributo android:required nella voce del file manifest <uses-feature.../> è impostato su false.

Se il Bluetooth non è supportato, devi disattivare manualmente qualsiasi le funzionalità di machine learning. Se il Bluetooth è supportato, ma disattivato, puoi richiedere che il attivare il Bluetooth senza uscire dall'app.

Il primo passaggio consiste nel aggiungendo le autorizzazioni Bluetooth al file manifest per utilizzare le API riportate di seguito.

Una volta definite le autorizzazioni, la configurazione del Bluetooth viene eseguita in due passaggi utilizzando BluetoothAdapter:

  1. Acquista BluetoothAdapter.

    Il BluetoothAdapter è necessario per tutte le attività Bluetooth. La BluetoothAdapter rappresenta l'adattatore Bluetooth del dispositivo (il radio Bluetooth). Per ricevere un BluetoothAdapter, devi prima avere un Context Utilizza questo contesto per ottenere un'istanza di BluetoothManager servizio di sistema. Chiamata a BluetoothManager#getAdapter in corso... ti fornirà un oggetto BluetoothAdapter. Se getAdapter() restituisce null, significa che il dispositivo non supporta il Bluetooth.

    Ad esempio:

    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. Attiva Bluetooth.

    Dopodiché devi assicurarti che il Bluetooth sia attivo. Chiama Da isEnabled() a controlla se il Bluetooth è attualmente attivo. Se questo metodo restituisce false, il Bluetooth è disattivato. Per richiedere l'attivazione del Bluetooth, chiama startActivityForResult(), passando un ACTION_REQUEST_ENABLE azione basata sull'intent. Questa chiamata richiede l'attivazione del Bluetooth tramite impostazioni di sistema (senza interrompere l'app).

    Ad esempio:

    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);
    }
    

Viene visualizzata una finestra di dialogo che richiede l'autorizzazione dell'utente per attivare il Bluetooth, come mostrato in figura 1. Se l'utente concede l'autorizzazione, il sistema inizia ad attivare il Bluetooth. e lo stato attivo torna sulla tua app una volta che il processo è stato completato (o non va a buon fine).

e
Figura 1. La finestra di dialogo per l'attivazione del Bluetooth.

La costante REQUEST_ENABLE_BT passata a startActivityForResult() è un numero intero definito localmente che deve essere maggiore o uguale a 0. Il sistema ti ritrasmette questa costante onActivityResult() implementazione come parametro requestCode.

Se l'attivazione del Bluetooth ha esito positivo, la tua attività riceve il RESULT_OK del codice risultato nel Chiamata di onActivityResult(). Se il Bluetooth non è stato attivato a causa di un errore (o l'utente ha risposto "Rifiuta"), il codice del risultato sarà RESULT_CANCELED

Se vuoi, la tua app può anche ascoltare ACTION_STATE_CHANGED per intent, che il sistema trasmette ogni volta che lo stato Bluetooth modifiche. Questa trasmissione contiene i campi aggiuntivi EXTRA_STATE e EXTRA_PREVIOUS_STATE, contenenti rispettivamente il nuovo e il vecchio stato Bluetooth. Valori possibili per questi campi aggiuntivi STATE_TURNING_ON, STATE_ON, STATE_TURNING_OFF, e STATE_OFF. L'ascolto di questa trasmissione può essere utile se la tua app deve rilevare l'esecuzione modifiche apportate allo stato Bluetooth.

Suggerimento:l'attivazione della rilevabilità attiva automaticamente Bluetooth Se prevedi di attivare in modo coerente la rilevabilità dei dispositivi prima l'attività Bluetooth, puoi saltare il passaggio 2 della procedura precedente.

Dopo aver attivato il Bluetooth sul dispositivo, puoi utilizzare sia Bluetooth Classic che Bluetooth Low Energy.

Per Bluetooth Classic, puoi trovare dispositivi Bluetooth e connettersi a dispositivi Bluetooth.

Per Bluetooth Low Energy, puoi trovare dispositivi BLE, connetterti a un server GATT e trasferire i dati BLE.