我正在 Android 上开发打印服务。可用打印机列表经常变化。 但是,我无法找到删除不存在的打印机(即在某些时候可用的打印机)的方法。 这些打印机在我的测试设备上显示为灰色。
我可以在 PrinterDiscoverySession 的 onStartPrinterDiscovery() 和 onValidatePrinters() 方法中看到“僵尸”打印机,但不知道如何摆脱它们。 使用现有打印机调用会话的 addPrinters() 或使用不存在的打印机调用 session 的 addPrinters() 没有帮助。
我很感激任何建议。 谢谢。
从 Android 默认打印服务打印菜单:
PrinterDiscoverySession.GetPrinters()
这将为您提供一个带有 List<PrinterInfo>
的列表 PrinterInfo
。您可以在打印机列表中搜索 STATUS_UNAVAILABLE 不为 0 的打印机
查看这些可能会有更清晰的答案:
PrinterDiscoverySession()
获取打印机()
打印机信息
STATUS_UNAVAILABLE(“返回 int 一个位掩码,指示由此 Parcelable 对象实例封送的特殊对象类型集。值为 0 或 CONTENTS_FILE_DESCRIPTOR”)
另一种选择可能是
另一种方法是使用 PrinterInfo.GetStatus()
从android默认打印服务打印菜单: 选择可用打印机列表中的向下箭头。 选择“所有打印机”。 长按要删除的打印机,然后单击“忘记”