Samsung Android 10 BLE MTU> 23 выпуск - PullRequest
       51

Samsung Android 10 BLE MTU> 23 выпуск

2 голосов
/ 08 апреля 2020

Проблема : после установки MTU> 23 на устройстве Samsung (S10e), работающем Android 10 и записи данных в характеристику c время ожидания соединения закрывается.

Root причина : причина тайм-аута в том, что аппаратное обеспечение телефона фактически ничего не отправляет ... поэтому конечное устройство не отвечает (ack).

Как я знаю, что это не проблема конечного устройства : эта проблема не возникает с другими устройствами (пиксель) и также не возникает на S10, если он работает Android 9.

Подробности : Мы используем requestMtu в BluetoothGatt, чтобы изменить MTU на 185, а затем onMtuChanged возвращаемое значение mtu равно 185, а статус - GATT_SUCCESS. Когда мы отправляем более длинное сообщение, которое составляет около 40 байтов, возвращаемое значение writeCharacteristi c BluetoothGatt равно true, но обратный вызов onCharacteristicWrite даст нам код состояния 133, который не является GATT_SUCCESS. Затем устройства отключатся.

Зачем мне нужен больший MTU : мы ожидаем, что сможем использовать больший MTU, чтобы мы могли отправлять данные на конечное устройство для предоставления Учетные данные Wi-Fi. Конечное устройство было разработано так, чтобы принимать только учетные данные одновременно (предполагается, что MTU> 23 не будет проблемой. Поэтому у нас есть полевые устройства, которые клиенты не могут использовать.

Вопрос : Есть какие-нибудь идеи или обходные пути, которые мы можем попробовать?

Информация о телефоне : Samsung s10e Os: Android 10 Android исправление безопасности: 1 марта 2020 года

Информация о конечном устройстве : ESP32

...