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
:
Obtén el
BluetoothAdapter
.El
BluetoothAdapter
es obligatorio para toda actividad de Bluetooth. ElBluetoothAdapter
representa el propio adaptador de Bluetooth del dispositivo (el radio Bluetooth). Para obtener unBluetoothAdapter
, primero debes tener unContext
Usa este contexto para obtener una instancia deBluetoothManager
completamente administrado. Llamando aBluetoothManager#getAdapter
te dará un objetoBluetoothAdapter
. SigetAdapter()
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 }
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, llamastartActivityForResult()
: y pasar unACTION_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.
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.