Я занимаюсь разработкой приложения для мониторинга сердечного ритма, в котором я читаю данные с устройства BLE, для всех других телефонов это не проблема, но для мобильного телефона Samsung, такого как Note 8, который использует Bluetooth версии 5.0. Через некоторое время происходит автоматическое отключение, и я я получаю статус 8
Код:
Для подключения
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
mGattClient = device.connectGatt(this, false, mGattCallbacks, TRANSPORT_LE)
} else {
mGattClient = device.connectGatt(this, false, mGattCallbacks)
}
// Изменение состояния соединения
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")
}
}
Я разместил это в системе отслеживания проблем Google
https://issuetracker.google.com/issues/122856771