El subprograma WeChat utiliza el protocolo de comunicación Bluetooth para conectar el resumen del hardware (inicializar Bluetooth, buscar dispositivos, mostrar dispositivos)

prefacio

Recientemente, hemos lanzado un pequeño proyecto de programa, exclusivo para todo el país, que detecta principalmente algunos signos vitales básicos del cuerpo humano, como la detección de electrocardiograma, frecuencia cardíaca, saturación de oxígeno en sangre, azúcar en sangre, ácido úrico, etc.

La placa de detección actual solo admite 蓝牙协议la transmisión de datos, y el programa pequeño y la placa de detección necesitan enviar y recibir instrucciones para realizar varias funciones. Golpea mientras el hierro está caliente. Hoy resolveré cómo usamos el programa pequeño para conectarnos a Bluetooth.

Inicializar el módulo bluetooth

En el subprograma, si desea utilizar la capacidad de Bluetooth, primero debe llamar para wx.openBluetoothAdapterinicializar el módulo adaptador de Bluetooth, y el período efectivo es de llamada wx.openBluetoothAdaptera llamada wx.closeBluetoothAdaptero destrucción del subprograma.

Documento abierto de WeChat: solo cuando el módulo del adaptador Bluetooth del subprograma está en vigor, el desarrollador normalmente puede llamar a la API del subprograma relacionado con Bluetooth y recibir la devolución de llamada del evento relacionado con el módulo Bluetooth (el monitoreo de enlace no está sujeto a esta restricción).

La compatibilidad con Bluetooth del applet es la siguiente: 经典蓝牙iOS no está disponible temporalmente debido a restricciones del sistema y Android se encuentra actualmente en planificación. 蓝牙低功耗 (BLE):: 主机模式La biblioteca básica 1.1.0 (cliente WeChat iOS 6.5.6, Android 6.5.7) comenzó a ser compatible. 从机模式: La biblioteca básica 2.10.3 comenzó a ser compatible. 蓝牙信标 (Beacon): La biblioteca básica 1.2.0 comenzó a ser compatible.

El proceso general de conexión Bluetooth

1. Inicializar el dispositivo Bluetooth

Primero, llamemos al método de inicialización del módulo Bluetooth wx.openBluetoothAdapter. Cuando el teléfono móvil no enciende el Bluetooth o se rechaza la autorización Bluetooth del applet, se activará una devolución de llamada fallida. Para mejorar la buena experiencia del usuario, podemos darle un recordatorio efectivo. el código se muestra a continuación:

wx.openBluetoothAdapter({success: function (res) {console.log("初始化蓝牙成功")//查找蓝牙设备findBlue();},fail: function (res) {wx.showModal({content: '请开启手机蓝牙!',showCancel: false,success (res) {}})}}) 

Nota : APIse deben wx.openBluetoothAdapterusar otros relacionados con bluetooth después de llamar. De lo contrario, APIse devolverá un error **(errCode=10000)**.

2. Buscar dispositivos Bluetooth

Después de inicializar con éxito el módulo Bluetooth, podemos buscar dispositivos Bluetooth en el siguiente paso. Necesitamos llamar a este método para wx.startBluetoothDevicesDiscoverycomenzar a buscar dispositivos Bluetooth cercanos. Esta operación consume recursos del sistema. Después de buscar el dispositivo deseado, debemos llamarlo a tiempo para detener la búsqueda wx.stopBluetoothDevicesDiscovery. El código correspondiente es el siguiente:

const findBlue = model => {wx.startBluetoothDevicesDiscovery({services:	["xxxxxxxx", "0000FFB0-xxxxxx"],interval: 0,success: function (res) {ConnectedDeviceRelated.isSearchBluetooth_detectionBoard = trueif (model != 'repeat' && e != 'notSearch') {wx.showToast({title: '正在搜索中...',icon: 'none',duration: 1500})}//解决iOS第一次进入检测页面卡死的问题setTimeout(function (params) {getBluetoothDevices()},500)},fail:function (res) {console.log('搜索蓝牙设备错误',res)if (res.errMsg == 'startBluetoothDevicesDiscovery:fail:location permission is denied') {wx.showModal({title: '警告',content: '微信的位置权限被拒绝,请到设置中手动开启授权!',showCancel: false,success(res) {}})}}})} 

Entre ellos se encuentra la serviceslista de servicios principales de dispositivos Bluetooth que se buscarán UUID, y algunos dispositivos Bluetooth transmitirán sus propios serviceservicios principales UUID. Si se configura este parámetro, solo se buscarán los dispositivos bluetooth cuyos paquetes de transmisión tengan el servicio principal correspondiente a UUID, y este parámetro puede filtrar otros dispositivos bluetooth que no necesitan ser procesados. Lo que está escrito en mi código de muestra es XXXque puede venir de acuerdo con su situación real.

Tenga en cuenta que la función Bluetooth necesita usar el permiso de posicionamiento, 安卓微信 6.0y la versión anterior, sin el permiso de posicionamiento o el interruptor de posicionamiento no está encendido, no se puede realizar la búsqueda de dispositivos. En este caso, 安卓微信 8.0.16antes de que la llamada a la interfaz sea exitosa pero el dispositivo no se puede escanear, 8.0.16y las versiones anteriores, se devolverá un error. Después de devolver un error, se recomienda solicitar al usuario que habilite el permiso de ubicación.

El código es el siguiente párrafo, que ya se ha puesto en él:

fail:function (res) {console.log('搜索蓝牙设备错误',res)if (res.errMsg == 'startBluetoothDevicesDiscovery:fail:location permission is denied') {wx.showModal({title: '警告',content: '微信的位置权限被拒绝,请到设置中手动开启授权!',showCancel: false,success(res) {}})}} 

3. Obtenga los dispositivos Bluetooth buscados

En el método anterior, buscamos dispositivos Bluetooth cercanos, entonces, ¿qué debemos hacer después de encontrarlos? Lo sacaremos para su uso en escenarios comerciales. Obtenga todos los dispositivos Bluetooth buscados cuando el módulo Bluetooth esté activo, incluidos los dispositivos que se han conectado al dispositivo. Después de obtener el dispositivo que especificó, guarde la identificación del dispositivo Bluetooth por separado, que se utilizará en operaciones posteriores. el código se muestra a continuación:

 //获取蓝牙设备信息const getBluetoothDevices = () => {wx.getBluetoothDevices({success: function (res) {if (res.devices.length > 0) {for (var i = 0; i < res.devices.length; i++) {if (res.devices[i].localName == ConnectedDeviceRelated.inputValue) {console.log('看一下获取到的指定设备', res.devices[i])ConnectedDeviceRelated.deviceId = res.devices[i].deviceIdapp.globalData.deviceId = res.devices[i].deviceIdapp.globalData.bluetooth = res.devices[i].localNamecreateBLEConnection()break;}if (res.devices.length - 1 == i) {findBlue('repeat')}}} else {findBlue('repeat')}},fail: function () {console.log("搜索蓝牙设备失败")}})} 

La siguiente figura es la información de impresión del dispositivo que obtuvimos:

por fin

Para los estudiantes que nunca han estado expuestos a la seguridad de la red, hemos preparado una hoja de ruta detallada de aprendizaje y crecimiento para usted. Se puede decir que es la ruta de aprendizaje más científica y sistemática, y no es problema para todos seguir esta dirección general.

Al mismo tiempo, hay videos de apoyo para cada sección correspondiente a la ruta de crecimiento:


Por supuesto, además de los videos de apoyo, se han clasificado para usted varios documentos, libros, materiales y herramientas, y se han clasificado en categorías para usted.

Debido al espacio limitado, solo se muestra parte de la información. Los amigos que lo necesiten pueden [hacer clic en la tarjeta a continuación] para obtenerla gratis:

Supongo que te gusta

Origin blog.csdn.net/Android062005/article/details/129195588
Recomendado
Clasificación