Android: Bluetooth como servicio.Una forma de administrar Bluetooth … | Autor Fabio Chiarani | Agosto 2021

En esto GRAMOuid crearemos 4 archivos:
BluetoothSDKService
: Realice la función Bluetooth y envíeLocalBroadcast
Mensajes durante la operaciónBluetoothSDKListenerHelper
: lograrBroadcastReceiver
Y dispararIBluetoothSDKListener
FunciónIBluetoothSDKListener
: NtraInterface
Definir la función de devolución de llamadaBluetoothUtils
: Contiene el nombre de la acción definida para filtrar eventos internosBroadcastReceiver
El primer paso es definir BluetoothUtils.kt
Archivo, que contiene las acciones que queremos que se notifiquen en nuestro evento:
He definido algunos, pero puede agregarlos según sea necesario.
El segundo paso es definir nuestra interfaz, que contendrá eventos correspondientes a las operaciones que definimos en el primer paso.Así que sigamos definiendo IBluetoothSDKListener
Como:
Esta interfaz se implementará en nuestra actividad o fragmento más adelante, y espera realizar algunas operaciones cuando se reciba un evento.Por ejemplo, cuando el dispositivo está conectado, la función onDeviceDiscovered
Se dispara, y luego se puede pasar a realizar determinadas operaciones, por ejemplo, como veremos en los siguientes pasos, enviar un mensaje vía Bluetooth al dispositivo recién conectado a través de nosotros. BluetoothSDKService
.
El siguiente paso es definir nuestra BroadcastReceiver
, Filtrará la intención utilizando la acción que definimos anteriormente. LocalBroadcastManager
, Para activar la función de devolución de llamada definida en la Sección 2.Entonces definimos BluetoothSDKListenerHelper
Como:
En actividades o fragmentos, realizaremos nuestro IBluetoothSDKListener
, Nos registraremos a través de dos funciones registerBluetoothSDKListner()
y unregisterBluetoothSDKListner()
. P.ej:
Ahora nuestro fragmento puede activarse para recibir eventos. BroadcastListener
, Los retransmite a nuestra interfaz de fragmentos a través de devoluciones de llamada. ¿Qué falta ahora? Bueno, la parte importante: ¡servicio Bluetooth!
Ahora, la parte clave, el servicio Bluetooth.Definiremos una clase para extender Service
, En el que definimos funciones que permiten a los servicios enlazar y administrar hilos de conexión Bluetooth:
Para que los puntos principales sean legibles, comenté las partes relacionadas con el hilo, que son las mismas que se pueden obtener en la documentación oficial.
Como puede ver, en LocalBinder
Puede definir funciones que son visibles para la actividad después de vincularse a la actividad. Por ejemplo, podemos definir funciones para descubrir, enviar mensajes o conectar operaciones, y luego estas funciones realizarán operaciones dentro del servicio.
Luego, en el hilo que gestiona el socket, puedes usar pushBroadcastMessage()
Funciones para generar eventos y agregar cargas útiles, como dispositivos y mensajes remotos. P.ej: