Added in [API level 19](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

# android.printservice

*** ** * ** ***

Provides classes for implementing print services. Print services are plug-in components that know how to talk to printers via some standard protocols. These services serve as a bridge between the system and the printers. Hence, the printer and print protocol specific implementation is factored out of the system and can be independently developed and updated.

A print service implementation should extend `https://developer.android.com/reference/android/printservice/PrintService` and implement its abstract methods. Also the print service has to follow the contract for managing `https://developer.android.com/reference/android/printservice/PrintJob`s.

<br />

The system is responsible for starting and stopping a print service depending on whether there are active print jobs for the printers managed by the service. The print service should also perform printer discovery in a timely fashion to ensure good user experience. The interaction between the system and the print service during printer discovery is encapsulated by a `https://developer.android.com/reference/android/printservice/PrinterDiscoverySession` instance created by the print service when requested by the system.

## Classes

|---|---|
| [CustomPrinterIconCallback](https://developer.android.com/reference/android/printservice/CustomPrinterIconCallback) | Callback for `https://developer.android.com/reference/android/printservice/PrinterDiscoverySession#onRequestCustomPrinterIcon(android.print.PrinterId,%20android.os.CancellationSignal,%20android.printservice.CustomPrinterIconCallback)`. |
| [PrintDocument](https://developer.android.com/reference/android/printservice/PrintDocument) | This class represents a printed document from the perspective of a print service. |
| [PrinterDiscoverySession](https://developer.android.com/reference/android/printservice/PrinterDiscoverySession) | This class encapsulates the interaction between a print service and the system during printer discovery. |
| [PrintJob](https://developer.android.com/reference/android/printservice/PrintJob) | This class represents a print job from the perspective of a print service. |
| [PrintService](https://developer.android.com/reference/android/printservice/PrintService) | This is the base class for implementing print services. |

-

  ## Classes

  - [CustomPrinterIconCallback](https://developer.android.com/reference/android/printservice/CustomPrinterIconCallback)
  - [PrintDocument](https://developer.android.com/reference/android/printservice/PrintDocument)
  - [PrinterDiscoverySession](https://developer.android.com/reference/android/printservice/PrinterDiscoverySession)
  - [PrintJob](https://developer.android.com/reference/android/printservice/PrintJob)
  - [PrintService](https://developer.android.com/reference/android/printservice/PrintService)