Estoy desarrollando una aplicación de monitoreo de frecuencia cardíaca donde estoy leyendo datos del dispositivo BLE, para todos los demás teléfonos no hay problema, pero para dispositivos móviles Samsung como Note 8, que usa la versión 5.0 de Bluetooth. Se desconecta automáticamente después de un tiempo y obtengo el estado. 8
Código:
para conectar
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { mGattClient = device.connectGatt(this, false, mGattCallbacks, TRANSPORT_LE) } else { mGattClient = device.connectGatt(this, false, mGattCallbacks) }// Cambio de estado de conexión
override fun onConnectionStateChange(gatt: BluetoothGatt, status: Int, newState: Int) { when (newState) { BluetoothProfile.STATE_CONNECTED -> { // this sleep is here to avoid TONS of problems in BLE, that occur whenever we start // service discovery immediately after the connection is established mGattClient?.discoverServices() } BluetoothProfile.STATE_DISCONNECTED -> { Log.d(TAG,"Disconnected status"+ status) } } } // New services discovered override fun onServicesDiscovered(gatt: BluetoothGatt, status: Int) { when (status) { BluetoothGatt.GATT_SUCCESS -> mListener?.deviceConnected(MESSAGE_CONNECTED, status) else -> Log.w("BLE", "onServicesDiscovered received: $status") } }He publicado esto en el rastreador de problemas de Google
Este problema no tiene nada que ver con el sistema operativo Android en sí o con su software. El código de error 8 significa Tiempo de espera de conexión de acuerdo con la especificación de Bluetooth. Significa que el hardware Bluetooth del teléfono perdió la conexión con el dispositivo. Existen principalmente tres razones: mala recepción de antena/radio, desviación del reloj entre los dos dispositivos por lo que pierden la sincronización, demasiados conflictos de programación (si tiene varias conexiones).
Si experimenta que su Note 8 tiene un rendimiento significativamente peor que otros teléfonos, envíe un informe de problemas a Samsung.