Flutter如何使用flutter_blue_plus插件
我正在使用Flutter开发一个蓝牙应用,需要用到flutter_blue_plus插件,但在集成过程中遇到了一些问题。具体表现为:
- 按照官方文档配置后,插件初始化失败,提示"Bluetooth adapter not available",但手机蓝牙功能已开启
- 扫描不到周围的蓝牙设备,已确认设备处于可发现模式
- 连接设备时经常超时,不知道是否需要特殊权限配置
想请教有经验的朋友:
- 这个插件在实际项目中是否稳定?
- 有没有完整的示例代码可以参考?
- 在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插件步骤:
- 在pubspec.yaml添加依赖:
flutter_blue_plus: ^1.0.0 - 导入包:
import 'package:flutter_blue_plus/flutter_blue_plus.dart'; - 初始化蓝牙适配器:
FlutterBluePlus flutterBlue = FlutterBluePlus.instance; - 扫描设备:
flutterBlue.startScan(timeout: Duration(seconds: 4)); - 连接设备并读写特征值。
注意:需配置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 应用中。

