BLE: onConnectionStateChange Status 8 на телефонах Samsung - PullRequest
0 голосов
/ 15 января 2019

Я занимаюсь разработкой приложения для мониторинга сердечного ритма, в котором я читаю данные с устройства 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

1 Ответ

0 голосов
/ 20 января 2019

Эта проблема не имеет ничего общего с самой ОС Android или вашим программным обеспечением. Код ошибки 8 означает время ожидания подключения в соответствии со спецификацией Bluetooth. Это означает, что оборудование Bluetooth в телефоне потеряло соединение с устройством. В основном это три причины: плохой прием антенны / радиосигнала, сдвиг часов между двумя устройствами, что приводит к потере синхронизации, слишком много конфликтов планирования (если у вас несколько подключений).

Если вы чувствуете, что производительность вашего Note 8 значительно хуже, чем у других телефонов, отправьте отчет о проблеме в Samsung.

...