flutter blue plus如何使用

最近在学习Flutter蓝牙开发,尝试使用flutter_blue_plus插件但遇到一些问题:

  1. 如何初始化并扫描附近的蓝牙设备?
  2. 连接设备时总是失败,正确的连接流程是什么?
  3. 读写蓝牙特征值时需要注意哪些细节?
  4. 有没有完整的示例代码可以参考?
    对这个插件还不太熟悉,求有经验的大佬指点!
2 回复

Flutter Blue Plus 是 Flutter 蓝牙插件,使用步骤如下:

  1. 添加依赖到 pubspec.yaml
  2. 申请蓝牙权限(Android/iOS)。
  3. 扫描设备:FlutterBluePlus.scan()
  4. 连接设备:device.connect()
  5. 发现服务并读写特征值。
  6. 断开连接:device.disconnect()

详细用法参考官方文档和示例代码。

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


Flutter Blue Plus 是 Flutter 的蓝牙插件,用于在 Android 和 iOS 设备上实现蓝牙通信。以下是基本使用方法:

1. 添加依赖

pubspec.yaml 中添加:

dependencies:
  flutter_blue_plus: ^1.0.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):

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

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.remoteId}');
      }
    });
  }
  
  // 停止扫描
  void stopScan() {
    FlutterBluePlus.stopScan();
  }
  
  // 连接设备
  Future<void> connectDevice(BluetoothDevice device) async {
    await device.connect();
    print('已连接到: ${device.remoteId}');
    
    // 发现服务
    List<BluetoothService> services = await device.discoverServices();
    for (BluetoothService service in services) {
      print('服务 UUID: ${service.serviceUuid}');
    }
  }
  
  // 断开连接
  Future<void> disconnectDevice(BluetoothDevice device) async {
    await device.disconnect();
  }
}

4. 读写特征值

// 写入数据
Future<void> writeCharacteristic(
  BluetoothCharacteristic characteristic, 
  List<int> data
) async {
  await characteristic.write(data);
}

// 读取数据
Future<List<int>> readCharacteristic(
  BluetoothCharacteristic characteristic
) async {
  return await characteristic.read();
}

// 监听通知
void listenToNotifications(BluetoothCharacteristic characteristic) {
  characteristic.onValueReceived.listen((value) {
    print('收到数据: $value');
  });
  await characteristic.setNotifyValue(true);
}

主要功能

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

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

回到顶部