Flutter如何使用flutter_blue_plus插件

我正在使用Flutter开发一个蓝牙应用,需要用到flutter_blue_plus插件,但在集成过程中遇到了一些问题。具体表现为:

  1. 按照官方文档配置后,插件初始化失败,提示"Bluetooth adapter not available",但手机蓝牙功能已开启
  2. 扫描不到周围的蓝牙设备,已确认设备处于可发现模式
  3. 连接设备时经常超时,不知道是否需要特殊权限配置

想请教有经验的朋友:

  • 这个插件在实际项目中是否稳定?
  • 有没有完整的示例代码可以参考?
  • 在Android/iOS平台上需要额外注意哪些配置?

开发环境:Flutter 3.10,flutter_blue_plus 1.4.0
(注:问题完整包含了标题中的所有关键信息,且符合字数要求)


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

2 回复

使用flutter_blue_plus插件步骤:

  1. 在pubspec.yaml添加依赖:flutter_blue_plus: ^1.0.0
  2. 导入包:import 'package:flutter_blue_plus/flutter_blue_plus.dart';
  3. 初始化蓝牙适配器:FlutterBluePlus flutterBlue = FlutterBluePlus.instance;
  4. 扫描设备:flutterBlue.startScan(timeout: Duration(seconds: 4));
  5. 连接设备并读写特征值。

注意:需配置Android/iOS蓝牙权限。

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


Flutter 使用 flutter_blue_plus 插件进行蓝牙操作,步骤如下:

1. 添加依赖

pubspec.yaml 文件中添加依赖:

dependencies:
  flutter_blue_plus: ^1.0.0  # 使用最新版本

运行 flutter pub get 安装。

2. 配置权限

Android:

  • android/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" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  • 对于 Android 12+,还需添加 BLUETOOTH_CONNECT 等权限。

iOS:

  • ios/Runner/Info.plist 中添加:
<dict>
  <key>NSBluetoothAlwaysUsageDescription</key>
  <string>需要蓝牙权限以连接设备</string>
</dict>

3. 基本使用示例

import 'package:flutter_blue_plus/flutter_blue_plus.dart';

class BluetoothManager {
  // 扫描设备
  void startScan() {
    FlutterBluePlus.startScan(timeout: Duration(seconds: 10));
    FlutterBluePlus.scanResults.listen((results) {
      for (ScanResult result in results) {
        print("发现设备: ${result.device.name} - ${result.device.id}");
      }
    });
  }

  // 停止扫描
  void stopScan() {
    FlutterBluePlus.stopScan();
  }

  // 连接设备
  Future<void> connectDevice(BluetoothDevice device) async {
    await device.connect();
    print("已连接: ${device.name}");
  }

  // 发现服务
  Future<void> discoverServices(BluetoothDevice device) async {
    List<BluetoothService> services = await device.discoverServices();
    for (BluetoothService service in services) {
      print("服务 UUID: ${service.uuid}");
    }
  }
}

4. 关键功能

  • 扫描设备:通过 startScan()scanResults 监听结果。
  • 连接/断开:使用 device.connect()device.disconnect()
  • 读写特征值:通过 characteristic.read()characteristic.write()
  • 监听通知:使用 characteristic.setNotifyValue(true) 并监听数据流。

5. 注意事项

  • 在物理设备上测试,模拟器不支持蓝牙。
  • 处理权限请求(如 location 权限)。
  • 及时停止扫描以节省电量。

通过以上步骤,可快速集成蓝牙功能到 Flutter 应用中。

回到顶部