Flutter_Blue_Plus 是 Flutter 的蓝牙低功耗(BLE)插件,用于在 Android 和 iOS 设备上扫描、连接和通信蓝牙设备。以下是基本使用步骤:
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"/>
iOS(ios/Runner/Info.plist):
<dict>
<key>NSBluetoothAlwaysUsageDescription</key>
<string>需要蓝牙权限</string>
</dict>
3. 基本用法
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
// 检查蓝牙状态
FlutterBluePlus.adapterState.listen((state) {
if (state == BluetoothAdapterState.on) {
print("蓝牙已开启");
}
});
// 开始扫描
void startScan() {
FlutterBluePlus.startScan(timeout: Duration(seconds: 4));
FlutterBluePlus.scanResults.listen((results) {
for (ScanResult r in results) {
print('发现设备: ${r.device.name}');
}
});
}
// 停止扫描
FlutterBluePlus.stopScan();
// 连接设备
BluetoothDevice device = ...; // 从扫描结果获取
await device.connect();
List<BluetoothService> services = await device.discoverServices();
// 读写特征值
BluetoothCharacteristic characteristic = ...; // 从服务中获取
List<int> value = await characteristic.read();
await characteristic.write([0x12, 0x34]);
4. 断开连接
await device.disconnect();
注意事项:
- 在真实设备上测试,模拟器不支持蓝牙。
- 处理权限请求(Android 6.0+ 和 iOS 需要动态申请)。
- 连接前确保设备在扫描结果中。
通过以上步骤,你可以实现基本的 BLE 设备扫描、连接和数据通信。