Configurar Bluetooth

Antes de que tu app pueda comunicarse por Bluetooth o Bluetooth de bajo consumo, haz lo siguiente: verifica que el dispositivo admita Bluetooth y, si lo es, asegúrate de que esté habilitado. Ten en cuenta que esta verificación solo es necesaria si El atributo android:required en la entrada del archivo de manifiesto <uses-feature.../> es se define en false.

Si Bluetooth no es compatible, debes inhabilitar correctamente cualquier Bluetooth. atributos. Si Bluetooth es compatible, pero está inhabilitado, puedes solicitar que el que el usuario habilite Bluetooth sin salir de tu app.

El primer paso es agregando los permisos de Bluetooth a tu archivo de manifiesto para usar las siguientes APIs.

Una vez que se otorgan los permisos, la configuración de Bluetooth se realiza en dos pasos. con BluetoothAdapter:

  1. Obtén el BluetoothAdapter.

    El BluetoothAdapter es obligatorio para toda actividad de Bluetooth. El BluetoothAdapter representa el propio adaptador de Bluetooth del dispositivo (el radio Bluetooth). Para obtener un BluetoothAdapter, primero debes tener un Context Usa este contexto para obtener una instancia de BluetoothManager completamente administrado. Llamando a BluetoothManager#getAdapter te dará un objeto BluetoothAdapter. Si getAdapter() muestra un valor nulo, entonces el dispositivo no es compatible con Bluetooth.

    Por ejemplo:

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

    A continuación, debes asegurarte de que Bluetooth esté habilitado. Llamada isEnabled() a Comprueba si el Bluetooth está habilitado. Si este método devuelve false, entonces el Bluetooth está inhabilitado. Para solicitar que se habilite Bluetooth, llama startActivityForResult(): y pasar un ACTION_REQUEST_ENABLE acción de intent. Esta llamada envía una solicitud para habilitar Bluetooth mediante el la configuración del sistema (sin detener la app).

    Por ejemplo:

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

Aparecerá un cuadro de diálogo en el que se le solicitará permiso al usuario para habilitar Bluetooth, como se muestra en figura 1. Si el usuario otorga el permiso, el sistema comienza a habilitar Bluetooth, y el enfoque vuelve a tu app una vez que el proceso se completa (o falla).


Figura 1: Diálogo para habilitar Bluetooth

La constante REQUEST_ENABLE_BT que se pasa a startActivityForResult() es un número entero definido localmente que debe ser mayor o igual que 0. El sistema te devuelve esta constante en tu onActivityResult() implementación como el parámetro requestCode.

Si la habilitación de Bluetooth se realiza con éxito, tu actividad recibe el Código de resultado RESULT_OK en la onActivityResult(). Si Bluetooth no se habilitó debido a un error (o el usuario respondió "Rechazar"), luego, el código de resultado RESULT_CANCELED

De forma opcional, tu app también puede escuchar ACTION_STATE_CHANGED el intent de transmisión, que el sistema transmite cada vez que el estado de Bluetooth cambios. Esta transmisión contiene los campos adicionales EXTRA_STATE y EXTRA_PREVIOUS_STATE, que contenga los estados de Bluetooth nuevo y antiguo, respectivamente. Valores posibles para estos campos adicionales STATE_TURNING_ON: STATE_ON, STATE_TURNING_OFF, y STATE_OFF. Escuchar esta transmisión puede ser útil si tu app necesita detectar el tiempo de ejecución cambios realizados en el estado de Bluetooth.

Sugerencia: Habilitar la visibilidad habilita automáticamente Bluetooth Si planeas habilitar la visibilidad de dispositivos de manera constante antes realizar la actividad de Bluetooth, puedes omitir el paso 2 de los pasos anteriores.

Una vez que el Bluetooth esté habilitado en el dispositivo, podrás usar la versión clásica y Bluetooth de bajo consumo

Para obtener la versión clásica de Bluetooth, puedes encontrar dispositivos Bluetooth y conéctate a dispositivos Bluetooth.

Para Bluetooth de bajo consumo, puedes encontrar dispositivos BLE, conectarte a un servidor GATT y transferir datos BLE.