如何管理已知的打印机?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何管理已知的打印机?相关的知识,希望对你有一定的参考价值。

我真的不明白如何在PrintServicein android中管理打印机。

我在谈论蓝牙打印机。

documentation似乎解释了如何管理新的打印机,所以在这种情况下我明白我必须将我的打印机置于发现模式并打电话给onStartPrinterDiscovery

但是,如果我已经发现了一台打印机,我知道该怎么做,我将其地址存储在我的共享首选项中?

我看到当应用程序尝试在我的打印机上打印时,Android会调用onStartPrinterDiscovery,在这里我不想将打印机置于发现模式并启动发现会话,因为我拥有其地址并且可以直接制作connect

但Android抱怨打印机​​不可用。我在这里想念什么?

答案

来自documentation

通过调用addPrinters(List)添加发现的打印机。通过调用removePrinters(List)删除添加的消失的打印机。添加了通过调用addPrinters(List)更新其属性或功能已更改的打印机。此会话中添加的打印机可以通过getPrinters()获取,其中返回的打印机将是您在会话期间报告的打印机的最新快照。打印机不会在会话中持久存在。

因此,当您发现打印机时,您可以调用addPrinters(此时没有属性)

如果系统有兴趣不断更新打印机状态,您将收到对onStartPrinterStateTracking(PrinterId)的调用,之后您必须尽最大努力保持系统更新以更改打印机状态和功能。如果在添加打印机功能时未提供打印机功能,则还必须更新打印机功能,否则将忽略打印机。当系统不再对获取打印机更新感兴趣时,您将收到对onStopPrinterStateTracking(PrinterId)的调用。

一旦用户选择了您报告的打印机,您应该获取并更新打印机属性。如果不这样做,您将在打印预览中看到“此打印机不可用”。我不认为您应该将已发现的打印机存储在共享首选项中,因为除非您尝试缓存已跟踪的打印机属性,否则它们不应在会话之间保留。

以上是关于如何管理已知的打印机?的主要内容,如果未能解决你的问题,请参考以下文章

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情

如何管理在每个 git 版本中添加私有代码片段?

如何使用Android片段管理器传递变量[重复]

argparse 代码片段只打印部分日志

条件片段和导航重用

如何在 Android 中获取位置管理器的最后一个已知位置?