如何从android上的打印服务中删除不存在的打印机?

bdr*_*tan 7 android-service android-print-framework

我正在 android 上开发打印服务。可用打印机列表经常更改。但是,我无法找到删除不存在的打印机(即在某些时候可用的打印机)的方法。这些打印机在我的测试设备上显示为灰色。

我可以在 PrinterDiscoverySession 的 onStartPrinterDiscovery() 和 onValidatePrinters() 方法中看到“僵尸”打印机,但不知道如何摆脱它们。使用现有打印机调用会话的 addPrinters() 或使用不存在的打印机调用 removePrinters() 没有帮助。

我很感激任何建议。谢谢。

Sco*_*hus 0

PrinterDiscoverySession.GetPrinters()List<PrinterInfo>这将为您提供一个包含 的列表PrinterInfo。您可以搜索 STATUS_UNAVAILABLE 不为 0 的打印机列表

查看这些可能会有更清晰的答案:

打印机发现会话()

获取打印机()

打印机信息

STATUS_UNAVAILABLE(“返回 int 位掩码,指示由此 Parcelable 对象实例封送的特殊对象类型集。值为 0 或 CONTENTS_FILE_DESCRIPTOR”)

另一种选择可能是

另一种方法是使用 PrinterInfo.GetStatus()