feat(ch934x_serial): 添加CH934X串口设备权限管理和端口切换功能

- 新增 setActivePort 方法用于在同一USB设备内部切换活跃串口
- 新增 requestUsbPermission 方法用于主动申请指定设备的USB权限
- 实现Android侧USB权限申请广播接收器和同步等待机制
- 在示例应用中集成权限预申请和端口切换UI逻辑
- 优化设备打开后自动拉取真实串口列表的功能
- 更新端口选择下拉框在打开状态下支持实时切换串口
This commit is contained in:
Developer
2026-07-06 16:58:51 +08:00
parent 90de9121ff
commit 76377e52f2
6 changed files with 276 additions and 13 deletions
+14
View File
@@ -56,6 +56,20 @@ abstract class Ch934xSerialPlatform extends PlatformInterface {
/// 关闭当前线程/会话最近一次打开的串口(对应 5.2.1 `UsbSerial.close`)。
Future<bool> closePort();
/// 切换当前活跃串口。
///
/// 同一 UsbDevice 在调用 [openPort] 之后,所有串口都已连
/// 接;此方法仅切换后续读写/GPIO/Modem 操作的目标串口,
/// 不重复打开设备。返回是否切换成功。
Future<bool> setActivePort(int serialPortIndex);
/// 主动向系统申请指定设备的 USB 使用权限。
///
/// 在用户未授权时弹出系统对话框,等待用户选择后返回结果。
/// [openPort] 内部已自动处理权限申请,业务方通常无需手动
/// 调用;仅在希望提前引导用户授权时使用。
Future<bool> requestUsbPermission(int deviceId);
// ---------------------------------------------------------------------------
// 串口读写
// ---------------------------------------------------------------------------