Hola, Amigos! Сегодня начнем с вами рассматривать многогранную тему Bluetooth во Flutter.
Один из самых популярных пакетов flutter_blue_plus позволяет сканировать устройства и устанавливать с ними соединение благодаря Bluetooth Low Energy (BLE).
⚙️ Важно: перед использованием убедитесь, что вы попросили пользователя предоставить разрешение на использование Bluetooth (пакет permission_handler).
Давайте рассмотрим основные возможности пакета.
Сканирование Bluetooth-устройств:
FlutterBluePlus flutterBlue = FlutterBluePlus.instance;
// прослушиваем найденные девайсы
flutterBlue.scanResults.listen((results){
// производим действия с найденными устройствами
});
Подключение к устройствам:
После обнаружения устройств можно установить с ними соединение.
void connectToDevice(BluetoothDevice device) async{
await device.connect();
}Получение списка услуг от устройства:
Каждое Bluetooth-устройство предоставляет список услуг, которые оно поддерживает. Чтобы получить этот список, используйте:
final services await device.discoverServices();
Характеристики BLE-устройств:
Каждая услуга на BLE-устройствах содержит набор характеристик, которые используются для взаимодействия с устройством. Например, у сервиса Generic Access Service есть характеристики, такие как имя устройства и MAC-адрес:
for(var service in services){
List<BlueToothCharacterictic> characteristics = service.characteristics;
}Считывание характеристик в устройствах BLE:
Для считывания данных с Bluetooth-устройства используйте метод
read(), обязательно используйте await, так как read() асинхронный.BlueToothCharacterictic characteristics;
List<int> value = await characteristics.read();
print(value.toString());
Запись характеристик в устройства BLE:
Для отправки данных на устройства BLE используйте метод
write(), также обязательно используйте await. Перед отправкой нужно подготовить данные в виде списка целых чисел. После выполнения операции записи, можно прослушивать уведомления, подтверждающие, что запись прошла успешно.List<int> dataToSend = [0x01,0x02,0x03];
await characteristics.write(dataToSend);
С Bluetooth во Flutter множество подводных камней. Ставьте реакцию, если тема инересна! И делитесь в чате разработчиков своим опытом, вместе обсудим ⚙️