更新记录

1.0.1(2026-10-14) 下载此版本

  • 承接项目侧下沉:UsbSerialDeviceBase(通道 = usb-serial)
  • uni_modules.dependencies 声明 pro-device-core

1.0.0(2026-10-14) 下载此版本

  • 首次发布
  • 提供 UsbSerialAdapter(USB Host 串口传输原语)

平台兼容性

uni-app(5.06)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
√ √ √ √ √ - √ - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
√ - - - - - - - - - - -

pro-device-adp-usb — USB Host 串口传输原语(UTS)

uni_modules USB 串口传输适配器。基于 usb-serial-for-android,走 Android UsbManager(非 /dev/tty*)。

可独立使用,亦可作为 pro-device 框架的 ITransport 适配器。

与 pro-device-adp-uart(板载 tty)分开打包:依赖、权限、发现/授权、拔插生命周期完全不同。


架构定位

pro-device-adp-usb
├── js_sdk/pro-device-adp-usb/
│   ├── adapter.ts                 ← UsbSerialAdapter(ITransport)
│   ├── types.ts
│   ├── errors.ts
│   ├── codec/hex.ts
│   └── link/usb-link-controller.ts
└── utssdk/app-android/
    ├── index.uts                  ← UsbSerial 原生类
    ├── AndroidManifest.xml
    ├── xml/device_filter.xml
    └── libs/usbSerialForAndroid.aar
语义 本适配器
连接 await open(config)(含 USB 授权)
主动断开 close()(不触发 onDisconnect)
意外断开 USB_DEVICE_DETACHED → remote;IO 错误 → io-error
linkCapability 始终 native

平台限制

仅支持 APP-PLUS(Android),需 USB Host / OTG。minSdkVersion = 21。

真机需打自定义基座。其他平台调用 open() 抛 UsbSerialConnectionError。


核心 API

UsbSerialAdapter

// App 构建:根路径是 uts-proxy(仅 UsbSerial);Adapter 需走 js_sdk
import {
  UsbSerialAdapter,
  type UsbSerialAdapterConfig,
} from '@/uni_modules/pro-device-adp-usb/js_sdk/pro-device-adp-usb'

// 先枚举(可选)
const list = UsbSerialAdapter.listDevices()
// [{ deviceName, productId, productName, vendorId, ... }]

const adapter = new UsbSerialAdapter()

await adapter.open({
  productId: 29987,          // 必填,例:CH340
  productName: 'USB Serial', // 可选;空则不按名称过滤
  // vendorId: 6790,
  // deviceName: '/dev/bus/usb/001/008',
  baudRate: 9600,
})

adapter.onDisconnect((reason) => {
  // remote | io-error | unknown
})

adapter.onReceive((buf) => { /* ArrayBuffer */ })
await adapter.send(frame)
await adapter.close()
方法 说明
listDevices() 静态:当前 Prober 可驱动的 USB 串口 列表(发现页用)
open(config) 匹配设备 → 授权 → 打开;连接同步点
close() 主动关闭
send / onReceive / onDisconnect 同 ITransport
linkCapability native

设备匹配

优先级:deviceName > vendorId+productId > productName+productId。
至少提供 productId。


支持芯片(库默认 Prober)

FTDI / Prolific PL2303 / Silabs CP210x / 沁恒 CH34x / CDC ACM 等。详见 usb-serial-for-android。


持续授权(可选)

若需插入后自动唤起 / 「一律打开」:

  1. 工程 AndroidManifest.xml 给主 Activity 加 USB_DEVICE_ATTACHED intent-filter
  2. meta-data 指向 @xml/device_filter(可参考本包 utssdk/app-android/xml/device_filter.xml)

无此需求时可不配;首次 open 仍会弹系统授权框。


与 tty 串口包对比

adapter-serial adapter-usb-serial
通道 /dev/ttyS* 文件 UsbManager + 芯片驱动
发现 已知 path listDevices / Prober
权限 结点权限 / 厂商预授权 运行时 USB 授权
断开 需可选 probe 原生 DETACHED
典型设备 板载秤/打印机 USB 扫码枪、USB 秤

隐私、权限声明

1. 本插件需要申请的系统权限列表:

USB Host

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无

许可协议

MIT协议

暂无用户评论。