flutter_blue_plus如何使用

我在使用flutter_blue_plus插件时遇到了一些问题,希望能得到帮助:

  1. 如何初始化并扫描附近的蓝牙设备?
  2. 连接设备后,如何读取或写入特征值?
  3. 订阅通知(notify)的具体流程是什么?
  4. 在Android和iOS上权限配置有哪些不同?
  5. 有没有完整的示例代码可以参考?

谢谢!

2 回复

Flutter_Blue_Plus 是 Flutter 蓝牙插件。使用步骤:

  1. 添加依赖到 pubspec.yaml
  2. 检查蓝牙权限和设备状态。
  3. 扫描设备:flutterBluePlus.startScan()
  4. 连接设备并发现服务。
  5. 读写特征值。 记得处理异常和断开连接。

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


FlutterBluePlus 是 Flutter 蓝牙 BLE 插件,用于在 Flutter 应用中实现蓝牙低功耗功能。以下是基本使用方法:

1. 添加依赖

pubspec.yaml 中添加:

dependencies:
  flutter_blue_plus: ^1.8.0

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"/>

iOS (ios/Runner/Info.plist):

<key>NSBluetoothAlwaysUsageDescription</key>
<string>需要蓝牙权限来连接设备</string>

3. 基本使用代码

import 'package:flutter_blue_plus/flutter_blue_plus.dart';

class BluetoothController {
  // 扫描设备
  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('服务: ${service.uuid}');
    }
  }
}

4. 状态监听

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

// 连接状态
device.connectionState.listen((state) {
  if (state == BluetoothConnectionState.connected) {
    print('设备已连接');
  }
});

主要功能

  • 扫描 BLE 设备
  • 连接/断开设备
  • 发现服务和特征
  • 读写特征值
  • 监听通知

记得在实际使用时处理权限请求和错误处理。

回到顶部