Flutter如何使用plus flutter blue插件
我在Flutter项目中需要实现蓝牙功能,看到有plus_flutter_blue插件但不太会使用。具体遇到几个问题:
- 如何正确安装和配置这个插件?在pubspec.yaml添加依赖后还需要其他设置吗?
- 插件文档提到的Android/iOS权限配置具体要怎么操作?
- 搜索蓝牙设备时总是返回空列表,但手机蓝牙设置里能看到设备,可能是什么原因?
- 读写蓝牙特征值时有没有推荐的最佳实践或常见问题解决方案?
希望能得到具体的使用示例和常见坑的避坑指南,谢谢!
2 回复
使用Flutter Blue Plus插件步骤:
- 在pubspec.yaml添加依赖:
flutter_blue_plus: ^版本号 - 导入包:
import 'package:flutter_blue_plus/flutter_blue_plus.dart'; - 常用功能:扫描设备、连接、读写特征值等
- 注意添加蓝牙权限(Android/iOS)
更多关于Flutter如何使用plus flutter blue插件的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
Flutter 使用 flutter_blue_plus 插件进行蓝牙操作,步骤如下:
1. 添加依赖
在 pubspec.yaml 文件中添加:
dependencies:
flutter_blue_plus: ^1.30.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 及以上需要 -->
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.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 BluetoothController {
// 扫描设备
void startScan() {
FlutterBluePlus.startScan(timeout: Duration(seconds: 10));
FlutterBluePlus.scanResults.listen((results) {
for (ScanResult result in results) {
print('发现设备: ${result.device.name} | RSSI: ${result.rssi}');
}
});
}
// 停止扫描
void stopScan() {
FlutterBluePlus.stopScan();
}
// 连接设备
Future<void> connect(BluetoothDevice device) async {
await device.connect();
print('已连接到 ${device.name}');
}
// 发现服务与特征值
Future<void> discoverServices(BluetoothDevice device) async {
List<BluetoothService> services = await device.discoverServices();
for (var service in services) {
for (var characteristic in service.characteristics) {
print('特征值: ${characteristic.uuid}');
}
}
}
}
4. 注意事项
- Android 12+ 需在
AndroidManifest.xml中声明BLUETOOTH_SCAN和BLUETOOTH_CONNECT权限。 - iOS 需在
Info.plist中配置NSBluetoothAlwaysUsageDescription。 - 测试时请使用真实蓝牙设备,模拟器不支持蓝牙功能。
通过以上步骤即可在 Flutter 中集成 flutter_blue_plus 实现蓝牙功能。

