Most visited

Recently visited

Added in API level 19

PrinterDiscoverySession

public abstract class PrinterDiscoverySession
extends Object

java.lang.Object
   ↳ android.printservice.PrinterDiscoverySession


此类在打印机发现期间封装打印服务和系统之间的交互。 在发现打印机期间,您负责添加发现的打印机,删除先前添加的消失的打印机,并更新已添加的打印机。

在本次会话的整个生命周期中,您可能会被要求多次启动和停止执行打印机发现。 您将收到一个致电onStartPrinterDiscovery(List)的电话以启动打印机发现,并致电onStopPrinterDiscovery()停止打印机发现。 当系统不再对通过此会话发现的打印机感兴趣时,您将收到对onDestroy()的呼叫,此时系统将不再呼叫进入会话,并且所有会话方法都不会执行任何操作。

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

如果您需要更新某些打印机,系统将拨打onValidatePrinters(List) 您可能添加了打印机而未指定其功能。 这使您可以避免查询所有发现的打印机的功能,而只在必要时查询打印机的功能。 例如,如果用户选择了打印机,系统会要求您更新打印机。 验证打印机时,您不需要提供打印机的功能,但可以这样做。

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

注意:此类中的所有回调都在主应用程序线程上执行。 您还必须在主应用程序线程上调用此类的任何方法。

Summary

Public constructors

PrinterDiscoverySession()

构造函数。

Public methods

final void addPrinters(List<PrinterInfo> printers)

添加发现的打印机。

final List<PrinterInfo> getPrinters()

获取本次会话中报告的打印机。

final List<PrinterId> getTrackedPrinters()

获取应该跟踪的打印机。

final boolean isDestroyed()

获取会话是否被销毁。

final boolean isPrinterDiscoveryStarted()

获取打印机发现是否已启动。

abstract void onDestroy()

通知您会话被销毁。

void onRequestCustomPrinterIcon(PrinterId printerId, CancellationSignal cancellationSignal, CustomPrinterIconCallback callback)

由系统调用以请求打印机的自定义图标。

abstract void onStartPrinterDiscovery(List<PrinterId> priorityList)

回调要求您启动打印机发现。

abstract void onStartPrinterStateTracking(PrinterId printerId)

回调让您开始跟踪打印机的状态。

abstract void onStopPrinterDiscovery()

回调通知您应停止打印机发现。

abstract void onStopPrinterStateTracking(PrinterId printerId)

回调要求您停止跟踪打印机的状态。

abstract void onValidatePrinters(List<PrinterId> printerIds)

回调要求您验证给定的打印机是否有效,即它们是否存在。

final void removePrinters(List<PrinterId> printerIds)

删除添加的打印机。

Inherited methods

From class java.lang.Object

Public constructors

PrinterDiscoverySession

Added in API level 19
PrinterDiscoverySession ()

构造函数。

Public methods

addPrinters

Added in API level 19
void addPrinters (List<PrinterInfo> printers)

添加发现的打印机。 添加已添加的打印机会更新它。 删除的打印机可以再次添加。 您可以在本次会议期间多次调用此方法。 重复将被忽略。

注意:会话销毁后调用此方法,即 onDestroy()回调之后,将被忽略。

Parameters
printers List: The printers to add.

也可以看看:

getPrinters

Added in API level 19
List<PrinterInfo> getPrinters ()

获取本次会话中报告的打印机。 例如,如果您添加两台打印机并删除其中一台,则返回的列表将只包含已添加但未删除的打印机。

注意:会话销毁后调用此方法,即 onDestroy()回调后,将被忽略。

Returns
List<PrinterInfo> The printers.

也可以看看:

getTrackedPrinters

Added in API level 19
List<PrinterId> getTrackedPrinters ()

获取应该跟踪的打印机。 这些是对用户很重要的打印机,并且您收到了致电onStartPrinterStateTracking(PrinterId)要求您观察其状态并通过addPrinters(List)将其报告给系统。 如果您应该停止跟踪打印机,您将收到致电onStopPrinterStateTracking(PrinterId)的电话。

注意:会话销毁后调用此方法,即 onDestroy()回调后,将被忽略。

Returns
List<PrinterId> The printers.

也可以看看:

isDestroyed

Added in API level 19
boolean isDestroyed ()

获取会话是否被销毁。

Returns
boolean Whether the session is destroyed.

也可以看看:

isPrinterDiscoveryStarted

Added in API level 19
boolean isPrinterDiscoveryStarted ()

获取打印机发现是否已启动。

Returns
boolean Whether printer discovery is destroyed.

也可以看看:

onDestroy

Added in API level 19
void onDestroy ()

通知您会话被销毁。 调用此回调之后,将忽略对此类的方法的任何调用, isDestroyed()将返回true,并且您将不再接收回调。

也可以看看:

onRequestCustomPrinterIcon

Added in API level 24
void onRequestCustomPrinterIcon (PrinterId printerId, 
                CancellationSignal cancellationSignal, 
                CustomPrinterIconCallback callback)

由系统调用以请求打印机的自定义图标。 一旦图标可用,打印服务使用onCustomPrinterIconLoaded(Icon)将图标发送到系统。

Parameters
printerId PrinterId: The printer to icon belongs to.
cancellationSignal CancellationSignal: Signal used to cancel the request.
callback CustomPrinterIconCallback: Callback for returning the icon to the system.

也可以看看:

onStartPrinterDiscovery

Added in API level 19
void onStartPrinterDiscovery (List<PrinterId> priorityList)

回调要求您启动打印机发现。 发现的打印机应通过呼叫addPrinters(List)添加。 添加的消失的打印机应通过调用removePrinters(List)删除。 添加的打印机的属性或功能更改应通过调用addPrinters(List)进行更新。 当您应该停止打印机发现时,您将收到致电onStopPrinterDiscovery()的电话。

在此会话的生命周期中,必须添加打印服务已知的所有打印机。 系统不会在会话中保留任何打印机。 但是,如果要求您在此会话中启动并停止执行打印机发现,则后续发现不应该重新发现已发现的打印机。 您可以通过致电getPrinters()获取本次会议期间报告的打印机。

注意:您还可以获得首先检查可用性的打印机列表。 例如,这些打印机可能是用户最喜欢的打印机,因此必须先进行验证。 不需要提供打印机的功能,而是验证它们是否与onValidatePrinters(List)类似。

Parameters
priorityList List: The list of printers to validate first. Never null.

也可以看看:

onStartPrinterStateTracking

Added in API level 19
void onStartPrinterStateTracking (PrinterId printerId)

回调让您开始跟踪打印机的状态。 跟踪状态意味着您应该尽最大努力观察打印机的状态,并通过呼叫addPrinters(List)通知系统该状态是否改变。

注意:打印机最初可能没有其功能添加,以避免轮询打印机,用户不会选择。 但是,这种方法被调用后,你预计将更新包括其功能的打印机。 否则,打印机将被忽略。

可能会要求您跟踪打印机状态的情况是,用户是否选择了该打印机,并且系统必须根据打印机的功能提供打印选项UI。 在这种情况下,应该及时通知用户,例如打印机是否变得不可用。

Parameters
printerId PrinterId: The printer to start tracking.

也可以看看:

onStopPrinterDiscovery

Added in API level 19
void onStopPrinterDiscovery ()

回调通知您应停止打印机发现。

也可以看看:

onStopPrinterStateTracking

Added in API level 19
void onStopPrinterStateTracking (PrinterId printerId)

回调要求您停止跟踪打印机的状态。 传入的打印机ID是您接到onStartPrinterStateTracking(PrinterId)的电话。

Parameters
printerId PrinterId: The printer to stop tracking.

也可以看看:

onValidatePrinters

Added in API level 19
void onValidatePrinters (List<PrinterId> printerIds)

回调要求您验证给定的打印机是否有效,即它们是否存在。 您有责任检查这些打印机是否存在,以及是否存在通过调用addPrinters(List)通知系统的addPrinters(List)

Note: You are not required to provide the printer capabilities when updating the printers that do exist.

Parameters
printerIds List: The printers to validate.

也可以看看:

removePrinters

Added in API level 19
void removePrinters (List<PrinterId> printerIds)

删除添加的打印机。 删除已删除或从未添加的打印机不起作用。 删除的打印机可以再次添加。 您可以在此会话的有效期内多次调用此方法。

注意:会话销毁后调用此方法,即在 onDestroy()回调之后,将被忽略。

Parameters
printerIds List: The ids of the removed printers.

也可以看看:

Hooray!