移动端开发进阶之蓝牙通讯(四)
在移动端开发实践中,可能会要求在不同的设备之间切换,从而提升用户体验;
或者为了提升设备的利用率,实现设备之间的连接和协同工作;
不得不通过多端连接,将多个设备连接在一起,实现设备之间的数据共享、远程控制等功能,根据具体的应用场景和需求采用蓝牙的多端连接进行实现。
一、选择合适的第三方库
要实现多设备蓝牙连接需要选择使用flutter_reactive_ble或flutter_ble_lib,下面用flutter_reactive_ble作为示例。
dependencies:
flutter:
sdk: flutter
flutter_reactive_ble: ^5.2.0
二、连接设备
- 扫描设备
final FlutterReactiveBle reactiveBle = FlutterReactiveBle();
final List<DiscoveredDevice> devices = [];
StreamSubscription<DiscoveredDevice>? scanStream;
StreamSubscription<ConnectionStateUpdate>? connectStream;
// 开始扫描
Future<void> scanDevices() async {
List<Uuid> services = [];
/**
* 过滤条件,不过滤就传空数组
* services.add(Uuid.parse("0000fff0-0000-1000-XXXX-XXXXXXXXXXX"));
* */
scanStream = reactiveBle
.scanForDevices(withServices: services, scanMode: ScanMode.lowLatency)
.listen((device) {
// 验证重复性、验证合法性才能添加进devices
devices.add(device);
}, onError: (e) {