首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用UsbManager取消安卓中的打印作业

用UsbManager取消安卓中的打印作业
EN

Stack Overflow用户
提问于 2019-02-18 10:18:39
回答 1查看 276关注 0票数 0

我在android中有一个项目,需要使用UsbManager类打印原始文本(以支持ESC/P命令)。我使用bulkTransfer完成了它,代码看起来像。现在我应该选择取消这份工作。我该怎么做呢?

我试着搜索,不知何故我哪儿也找不到。我也是机器人新手。谢谢。

编辑:

我使用的打印机是理货T5040和爱普生PLQ-30.

我尝试的是通过发送0x18 (取消数据)命令清除打印机缓冲区。但还是没有运气。

编辑2:

最后,我能够使用controlTransfer软重置打印机(清除所有缓冲区)。完整的命令是controlTransfer(0x21, 2, 0, 0, null, 0, 0)。我从本站那里得到了推荐信。但是现在的问题是重置命令只在爱普生PLQ-30上工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-09 11:47:04

根据印刷设备通用串行总线设备类定义,有一个名为SOFT_RESET的类特定请求:

这个特定于类的请求会刷新所有缓冲区,并将散列释放和散装在管道中重置到它们的默认状态。此请求清除所有失速条件。此重置不会更改USB地址或USB配置。

所以您只需要使用SOFT_RESET发送controlTransfer请求,代码是(Kotlin):

代码语言:javascript
复制
controlTransfer(0x21, 2, 0, 0, null, 0, 0)

我的另一台打印机(Tally T5040)不能工作的原因是固件不支持SOFT_RESET请求。我已经联系了他们,并获得了固件的更新,以支持SOFT_RESET。

如果任何人寻找有关如何使用USB在Android中打印的参考资料(包括软重置,检查纸张状态),您可以检查我的项目这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54744952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档