Я новичок во Flutter и хотел проверить некоторые функциональные возможности BLE, которые предлагает Flutter Blue. У меня есть пример приложения, и он находит много устройств вокруг меня. Проблема в том, что я не могу подключиться ни к одному из них. В настоящее время я использую второй телефон для эмуляции периферийного устройства BLE, все другие программы, такие как nRF Connect for Mobile, могут подключаться к периферийному устройству и считывать данные, которые он предоставляет. Пример приложения Flutter Blue просто зависает при отключении при попытке подключения к устройству.
Вот типичный вывод консоли при попытке подключения:
D/BluetoothGatt( 6359): connect() - device: 73:B9:9F:25:67:DC, auto: true
D/BluetoothGatt( 6359): registerApp()
D/BluetoothGatt( 6359): registerApp() - UUID=44fdc1ff-3804-4ae2-ab52-3f3b6eb31e17
D/BluetoothGatt( 6359): onClientRegistered() - status=0 clientIf=7
D/BluetoothGatt( 6359): onAutoConnectionStatusCb()status =10
D/BluetoothGatt( 6359): close()
Мне удалось подключиться к эмулируемому периферийному устройству несколько раз, сначала подключившись через другое приложение, а затем «подключившись» к приложению Flutter. Это вывод:
D/BluetoothGatt( 6359): connect() - device: 73:B9:9F:25:67:DC, auto: true
D/BluetoothGatt( 6359): registerApp()
D/BluetoothGatt( 6359): registerApp() - UUID=201eaf3d-ab8a-402e-9cbf-232527fa53a8
D/BluetoothGatt( 6359): onClientRegistered() - status=0 clientIf=8
D/BluetoothGatt( 6359): onAutoConnectionStatusCb()status =10
D/BluetoothGatt( 6359): onClientConnectionState() - status=0 clientIf=8 device=73:B9:9F:25:67:DC
D/FlutterBluePlugin( 6359): [onConnectionStateChange] status: 0 newState: 2
D/BluetoothGatt( 6359): discoverServices() - device: 73:B9:9F:25:67:DC
I/flutter ( 6359): connected!
D/BluetoothGatt( 6359): onSearchComplete() = Device=73:B9:9F:25:67:DC Status=0
D/FlutterBluePlugin( 6359): [onServicesDiscovered] count: 3 status: 0
Я прочитал о том, что соединения не закрываются должным образом после выхода из других приложений, и я убедился, что включил / выключил как Bluetooth, так и сервисы определения местоположения, а также удалил другие приложения, которые могут мешать работе приложения Flutter. Я попытался увеличить время ожидания при подключении, чтобы убедиться, что приложение не закрывает соединение, прежде чем он сможет на самом деле подключиться, за исключением того, что я немного растерялся и не могу понять, что может быть неправым.
РЕДАКТИРОВАТЬ: Просто хотел добавить, что это, похоже, проблема, связанная с эмулируемой периферией BLE. С тех пор я смог без проблем заставить его работать как с модулем AT-09, так и с платой ESP32!