Я только что реализовал библиотеку flutter BLo c в своем приложении, и у меня возникла проблема.
Вот что мне нужно сделать:
Когда Bluetooth включен, я отправьте событие «connectTothedevice», и bluetooth blo c подключится к устройству. Затем я отправляю событие sendMyDataEvent, и bluetooth blo c отправляет мои данные. Но когда bluetooth отключается, я отправляю событие DisconnectEvent, и мне нужно очистить то, что я делал, и перевести go в исходное состояние.
Но вот моя проблема: bluetooth blo c выполняет много раз эту строку кода, когда у меня есть sendMyDataEvent
await bluetoothCharacteristicToSend.write(trame);
Следовательно, когда bluetooth выключается, я блокируюсь на этой строке, и я больше не могу реагировать на другие события, так как я заблокирован в mapEventToState.
Вот мой журнал отладки:
Bluetooth b : bluetooth state is ON
Bluetooth bloc : new event : Instance of 'FindFlyKeysDevice'
Bluetooth bloc : new event : Instance of 'SendMorceauEvent'
Bluetooth b : bluetooth state is OFF
Bluetooth b : bluetooth state is ON
Итак, я подумал о нескольких вариантах решения проблемы, но я не знаю, является ли это хорошей практикой и как это сделать:
- Переопределить bluetooth blo c
- Остановить вызов ожидания