zplCloud Blog

zplCloud Android app:用手机通过 USB 操作打印机

! U1 setvar "device.reset" "on"——从你口袋里的设备发出,无需 PC、无需驱动、无需网络。

1 分钟阅读 zplCloud Team

打印机从来不在电脑旁

Android 手机通过 USB OTG 线向 Zebra 打印机发送 setvar 命令

状态糟糕的打印机是物理问题:屏幕乱码、有人动过的浓度设置、指向去年 SSID 的 Wi-Fi 配置。修它意味着站在设备旁边——在叉车上、机架里、卡车深处——而手边唯一的电脑是手机。

zplCloud Android app 通过一根普通 USB 线与打印机通信。没有笔记本、没有串口适配器、不需要任何管理员权限,打印机上也不需要可用网络——这很重要,因为坏掉的网络配置往往正是你要去修的东西。

为什么这在 Android 上可行而在 iOS 上不行

Android 暴露 USB host 模式:用 OTG 线,手机成为 host,可以认领 USB 设备。app(基于 Capacitor)用它打开通向打印机命令接口的通道。

iOS 没有认领任意 USB 设备的等效公共 API。在 iPhone 和 iPad 上,同样的作业走网络路径——Weblink 或 CLI agent。这是平台限制,不是路线图项目。

两条 USB 路径

模式如何连接何时使用
Zebra SDK通过 Zebra USB 驱动 / Link-OS SDK 层打印机以标准 Zebra USB 设备呈现
直接 USB 串口(CDC-ACM)内置驱动,无需 Zebra 组件打印机处于 USB-CDC 模式;Android 询问一次 USB 权限

两者最终殊途同归:一个承载 SGD 和 ZPL 的双向通道。如果一条路径不枚举设备,先试另一条,再认定是线或打印机的问题。

重要的命令

下面都是同一通道上的标准 SGD——app 是打印机命令接口的键盘,不是专有协议。

确认你在与正确的设备对话:

! U1 getvar "device.friendly_name"

如果返回名称,通道正常,其余一切也会正常。先做这个;它区分线缆问题和命令问题。

重置到干净状态:

! U1 setvar "device.reset" "on"

导出完整配置——改动前有用,以便能恢复:

{}{"allconfig":null}

在传字体或图形前,检查打印机对自己存储的看法:

! U1 getvar "memory.flash_free"

网络和浓度变量以同样方式设置。重点是这里没有什么是 app 特有的:回到办公桌后,同样的字符串在 CLI(zplcloud send --usb --zpl "…")上也能用。

设置

1. 在 Android 手机或平板上安装 zplCloud app。

2. 用 USB/OTG 线连接打印机并开机。

3. Android 询问时授予 USB 权限,选择连接模式。

4. 查询、设置或重置。

实用说明

  • 用数据线。 仅充电 USB 线不枚举任何东西,症状看起来正是"不支持的打印机"。
  • 先读后写。 getvar 在前,setvar 在后。导出的配置是五分钟修复与无人能恢复的打印机之间的差别。
  • 重置不是出厂重置。 device.reset 重启打印机;不清除你的字体、格式或网络设置。输入前想清楚你要的是哪个。
  • 把手机带到打印机前,而不是把打印机带到桌前。 这正是全部意义——机架里用螺栓固定的打印机不需要拆下来才能重新配置。

相关

更多文章