Por qué la programación de Android no puede utilizar la escritura
Casi todos los resultados de las operaciones BLE, como la lectura y escritura de cadenas y descriptores, se devuelven de forma asincrónica. Si la siguiente operación se realiza sin esperar a que se devuelva el resultado de la operación anterior, la operación puede fallar o fallar. puede fallar. El hilo devuelto por onDescriptorWrite () es el mismo hilo que el hilo de escritura, y otras operaciones generalmente se devuelven a llamadas en diferentes hilos.
Caché del dispositivo
Android almacenará en caché los servicios del dispositivo BLE conectado. Si el servicio cambia después de actualizar el dispositivo, el programa no podrá comunicarse. En este momento, debe actualizar el caché, pero el método para actualizar el caché no está abierto. Solo puede usar la reflexión para llamar al método de actualización () en la clase BluetoothGatt:
intente {
Método localMethod = mBluetoothGatt.getClass().getMethod("refresh");
if (localMethod ! = null) {
return (booleano) localMethod.invoke( mBluetoothGatt);
p>
}
} catch (Exception localException) {
Log.e(" refrescoServices()", "Una excepción ocurrió al actualizar el dispositivo");
}