flutter_blue_plus如何使用

我在使用flutter_blue_plus库进行蓝牙开发时遇到了一些问题,具体如下:

  1. 如何初始化flutter_blue_plus并扫描附近的蓝牙设备?
  2. 连接蓝牙设备时总是失败,请问正确的连接流程是什么?
  3. 如何读取和写入蓝牙设备的特征值?
  4. 在断开连接后如何正确处理重连逻辑?
  5. 有没有完整的示例代码可以参考?

我在文档中没有找到很详细的说明,希望能得到一些使用指导。

2 回复

Flutter_Blue_Plus 是 Flutter 蓝牙插件,用于连接和管理 BLE 设备。使用步骤:

  1. 添加依赖到 pubspec.yaml
  2. 请求蓝牙权限。
  3. 扫描设备、连接、读写特征值等。

示例代码:

FlutterBluePlus flutterBlue = FlutterBluePlus.instance;
flutterBlue.startScan(timeout: Duration(seconds: 4));

更多关于flutter_blue_plus如何使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


Flutter_Blue_Plus 是 Flutter 的蓝牙低功耗(BLE)插件,用于在 Android 和 iOS 设备上扫描、连接和通信蓝牙设备。以下是基本使用步骤:

1. 添加依赖

pubspec.yaml 中添加:

dependencies:
  flutter_blue_plus: ^1.0.0

运行 flutter pub get

2. 配置权限

Androidandroid/app/src/main/AndroidManifest.xml):

<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

iOSios/Runner/Info.plist):

<dict>
  <key>NSBluetoothAlwaysUsageDescription</key>
  <string>需要蓝牙权限</string>
</dict>

3. 基本用法

import 'package:flutter_blue_plus/flutter_blue_plus.dart';

// 检查蓝牙状态
FlutterBluePlus.adapterState.listen((state) {
  if (state == BluetoothAdapterState.on) {
    print("蓝牙已开启");
  }
});

// 开始扫描
void startScan() {
  FlutterBluePlus.startScan(timeout: Duration(seconds: 4));
  FlutterBluePlus.scanResults.listen((results) {
    for (ScanResult r in results) {
      print('发现设备: ${r.device.name}');
    }
  });
}

// 停止扫描
FlutterBluePlus.stopScan();

// 连接设备
BluetoothDevice device = ...; // 从扫描结果获取
await device.connect();
List<BluetoothService> services = await device.discoverServices();

// 读写特征值
BluetoothCharacteristic characteristic = ...; // 从服务中获取
List<int> value = await characteristic.read();
await characteristic.write([0x12, 0x34]);

4. 断开连接

await device.disconnect();

注意事项:

  • 在真实设备上测试,模拟器不支持蓝牙。
  • 处理权限请求(Android 6.0+ 和 iOS 需要动态申请)。
  • 连接前确保设备在扫描结果中。

通过以上步骤,你可以实现基本的 BLE 设备扫描、连接和数据通信。

回到顶部