更新记录
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。
持续授权(可选)
若需插入后自动唤起 / 「一律打开」:
- 工程
AndroidManifest.xml给主 Activity 加USB_DEVICE_ATTACHEDintent-filter 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 秤 |

收藏人数:
下载插件并导入HBuilderX
下载插件ZIP
赞赏(0)
下载 109
赞赏 0
下载 12681473
赞赏 1956
赞赏
京公网安备:11010802035340号