flutter_spp_bluetooth_serial 0.1.5
flutter_spp_bluetooth_serial: ^0.1.5 copied to clipboard
Flutter basic implementation for Classical Bluetooth (only RFCOMM for now). Forked and republished as flutter_spp_bluetooth_serial.
项目:flutter_spp_bluetooth_serial #
- Android 原生包名(package name):com.aiyin.flutterbluetoothserial
- Flutter 包/项目名(pub 包名 / project name):flutter_spp_bluetooth_serial
本仓库为基于经典蓝牙(RFCOMM / Serial Port Profile)的 Flutter 插件示例与实现(当前仅支持 Android)。
内容概览
- 功能:适配器状态、开关、系统蓝牙设置、设备发现、配对、列举已配对设备、与多个设备并发连接、发送/接收数据等。
- 适用平台:Android(目前)。
- 适用场景:与 Arduino HC-05、Raspberry Pi 等通过 RFCOMM 提供串口服务的设备互联。
重要提示
- 本项目的 Android 原生包名为
com.aiyin.flutterbluetoothserial(在android/build.gradle和android/app或android/src下的配置中使用)。 - Flutter 的包名 / 项目名(用于在
pubspec.yaml中声明依赖)为flutter_spp_bluetooth_serial。
功能一览
- 监测蓝牙适配器状态(已开启/已关闭)
- 打开或关闭系统蓝牙适配器(受系统权限与政策限制)
- 打开系统蓝牙设置页面
- 扫描(发现)附近蓝牙设备,并可请求设备可被发现
- 列出已绑定(配对)的设备并支持发起配对流程
- 支持与多个设备同时建立连接
- 支持发送与接收数据(基于 RFCOMM 串口)
使用说明(快速上手)
- 在你的 Flutter 项目的
pubspec.yaml中添加依赖:
dependencies:
flutter_spp_bluetooth_serial: any
- 安装依赖:
flutter pub get
- 在 Dart 代码中导入:
import 'package:flutter_spp_bluetooth_serial/flutter_bluetooth_serial.dart';
说明:上述导入假设主库导出文件名为 flutter_bluetooth_serial.dart。如果你的库导出文件名不同,请将路径中的文件名替换为正确的导出文件名。
- 简要使用流程(示例概要):
- 使用类似
BluetoothConnection.toAddress(address)建立连接(异步)。 - 通过
connection.input监听接收数据流,并在回调中处理收到的数据。 - 使用
connection.output.add(bytes)发送数据到远端设备。 - 使用
connection.finish()或关闭连接的方式结束会话。
示例说明
- 请参考仓库中的
example/目录,其中包含一个示例应用,展示了设备发现、连接与简单的聊天交互界面(与 Arduino HC-05 等兼容的串口设备)。 - 示例界面截图(仅演示用途):
| 主界面与选项 | 扫描与连接 | 简单聊天 | 后台连接 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
常见问题提示
- Android 12+(以及更高)对蓝牙权限与后台访问有更严格的限制,运行前请确保已在
AndroidManifest.xml中添加必要的权限声明并在运行时请求授权。 - 部分设备对于并发 RFCOMM 连接数有限制(通常最多 7 个连接),实际可用连接数依设备而异。
开发与扩展(待办事项)
- 提供更高层次的
BluetoothConnection辅助工具,简化连接/重连逻辑。 - 支持指定连接 UUID 或协议类型以兼容更多服务发现方案。
- 增加监听/服务器模式(在设备上作为 RFCOMM server 接收连接)。
- 识别并显示远端设备的
BluetoothClass信息以提供更友好的设备描述。 - 考虑与
flutter_blue等生态系统的整合方案。
版权与许可证
请查阅仓库根目录中的 LICENSE 文件以获取许可证信息。



