Я работаю над передачей файлов со смартфона на периферийное устройство через BLE.
Медленная отправка данных по BLE (передача данных осуществляется с использованием перезаписи одного символа длиной 20 байтов c). Медленная скорость не является проблемой, потому что размер файлов также очень мал (до 1 МБ).
В тривиальных тестах все работает хорошо. Пока я пытаюсь запустить автоматическую передачу файлов в al oop (например, оставить его включенным в течение ночи для тестирования), на устройстве со стандартом Bluetooth 4.2 через короткое время Android рассылает спам из-за содержимого в Logcat :
01-24 13:44:08.411 1002 2449 10116 D vendor.qti.bluetooth@1.0-uart_controller: ReportSocFailure
01-24 13:44:08.411 1002 2449 10116 D vendor.qti.bluetooth@1.0-uart_controller: ReportSocFailure send soc failure
01-24 13:44:08.411 1002 2449 10116 E vendor.qti.bluetooth@1.0-uart_controller: Error reading data from uart
После нескольких секунд спама этот вывод записывает следующий вывод в Logcat, сигнализируя, что Bluetooth останавливается / перезапускается
1-24 13:44:08.428 1002 2449 2449 W vendor.qti.bluetooth@1.0-async_fd_watcher: StopThread: stopped the work thread
01-24 13:44:08.428 1002 2449 2449 D vendor.qti.bluetooth@1.0-uart_transport: userial clock off
01-24 13:44:38.527 1002 2449 2449 I vendor.qti.bluetooth@1.0-uart_transport: DeInitTransport: Transport is being closed!
01-24 13:44:38.528 1002 2449 2449 D vendor.qti.bluetooth@1.0-power_manager: SetPower: enable: 0
01-24 13:44:38.529 1002 2449 2449 D vendor.qti.bluetooth@1.0-power_manager: GetRfkillFd: rfkill_fd: 9
01-24 13:44:38.529 1002 2449 2449 D vendor.qti.bluetooth@1.0-power_manager: ControlRfkill: rfkill_fd: 9, enable: 0
01-24 13:44:38.637 1002 2449 2449 W vendor.qti.bluetooth@1.0-data_handler: controller Cleanup done
01-24 13:44:38.638 1002 2449 2449 I vendor.qti.bluetooth@1.0-data_handler: DataHandler:: joined Init thread
01-24 13:44:38.638 1002 2449 2449 E vendor.qti.bluetooth@1.0-wake_lock: Release wake lock not initialized/acquired
01-24 13:44:38.638 1002 2449 2449 D vendor.qti.bluetooth@1.0-wake_lock: CleanUp wakelock is destroyed
01-24 13:44:38.638 1002 2449 2449 W vendor.qti.bluetooth@1.0-bluetooth_hci: BluetoothHci::close, finish cleanup
01-24 13:44:38.713 u0_a3 3430 3430 D BluetoothSap: Proxy object disconnected
01-24 13:44:38.715 1000 26585 26585 D A2dpProfile: Bluetooth service disconnected
01-24 13:44:38.716 1000 26585 26585 D BluetoothSap: Proxy object disconnected
01-24 13:44:38.718 1000 26585 26585 D SapProfile: Bluetooth service disconnected
01-24 13:44:38.719 1000 26585 26585 D BluetoothInputDevice: Proxy object disconnected
01-24 13:44:38.719 10137 28340 28340 D BluetoothInputDevice: Proxy object disconnected
После этих событий служба, которая используется для записи данных перезапускается, я предполагаю, что, поскольку модуль Bluetooth на устройстве также перезапускается.
На устройстве со стандартом Bluetooth 4.0 все работает нормально , я мог оставить постоянную передачу файла работает в течение дня, и cra sh не произойдет.
У вас есть какие-либо идеи или предложения, почему это происходит? Для взаимодействия с адаптером Bluetooth я использую библиотеку RxBle
https://github.com/Polidea/RxAndroidBle
Спасибо.