PrintService 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
这是实现打印服务的基类。
[Android.Runtime.Register("android/printservice/PrintService", DoNotGenerateAcw=true)]
public abstract class PrintService : Android.App.Service
[<Android.Runtime.Register("android/printservice/PrintService", DoNotGenerateAcw=true)>]
type PrintService = class
inherit Service
- 继承
- 属性
注解
这是实现打印服务的基类。 打印服务知道如何通过一个或多个协议发现和交互一个或多个打印机。
<h3>打印机发现</h3>
打印服务负责发现打印机、添加发现的打印机、删除添加的打印机以及更新添加的打印机。 当系统对由服务管理的打印机感兴趣时,它将调用 #onCreatePrinterDiscoverySession()
该打印机,必须从中返回新 PrinterDiscoverySession
实例。 返回的会话封装在打印机发现期间系统和服务之间的交互。 有关此交互的说明,请参阅相关 PrinterDiscoverySession
文档。
对于每个打印机发现会话,必须添加所有打印机,因为系统不会跨会话保留打印机。 因此,此打印服务已知的每个打印机都应仅在发现会话期间添加一次。 只能删除或更新已添加的打印机。 可以再次添加已删除的打印机。
<h3>打印作业</h3>
当针对此打印服务管理的打印机的新打印作业已排队,即已准备好由打印服务进行处理时,你将收到一 #onPrintJobQueued(PrintJob)
个调用。 打印服务可以立即处理打印作业,或计划将来的相应时间。 此服务的所有活动打印作业的列表是通过调用 #getActivePrintJobs()
获取的。 活动打印作业是排队或启动的作业。
打印服务负责在处理打印作业时根据需要设置打印作业的状态。 最初,打印作业已排队,即 PrintJob#isQueued() PrintJob.isQueued()
返回 true,这意味着要打印的文档由系统后台打印,打印服务可以开始处理它。 可以通过调用其数据通过调用 PrintJob#getDocument() PrintJob.getDocument()
来 PrintDocument#getData() PrintDocument.getData()
获取打印的文档。 打印服务开始打印数据后,应通过调用 PrintJob#start()
该 PrintJob#isStarted() PrintJob.isStarted()
作业以启动打印作业的状态来返回 true。 成功完成后,应通过调用后PrintJob#isCompleted() PrintJob.isCompleted()
返回 PrintJob#complete() PrintJob.complete()
true 将打印作业标记为已完成。 如果失败,应通过调用后PrintJob#isFailed() PrintJob.isFailed()
返回 PrintJob#fail(String) PrintJob.fail( String)
true 来将打印作业标记为失败。
如果打印作业已排队或启动,并且用户请求取消该作业,则打印服务将收到对服务发出的请求的调用 #onRequestCancelPrintJob(PrintJob)
,以尽最大努力取消作业。 如果作业成功取消,则其状态必须通过调用 PrintJob#cancel() PrintJob.cancel()
将其标记为已取消,之后 PrintJob#isCancelled() PrintJob.isCacnelled()
将返回 true。
<h3>生命周期</h3>
打印服务的生命周期由系统专门管理,并遵循已建立的服务生命周期。 此外,通过启用或禁用设备设置中的显式用户操作,以独占方式触发启动或停止打印服务。 在系统绑定到打印服务后,它将调用 #onConnected()
。 客户端可以重写此方法以执行绑定后设置。 此外,在系统取消打印服务绑定后,它将调用 #onDisconnected()
。 客户端可以重写此方法以执行取消绑定清理后。 系统与打印服务断开连接后,不应执行任何工作,因为可以随时终止该服务以回收内存。 如果打印机的打印机有活动打印作业,则系统不会与打印服务断开连接。
<h3>声明</h3>
打印服务在AndroidManifest.xml中声明为任何其他服务,但它还必须指定它处理 android.content.Intent
操作 #SERVICE_INTERFACE android.printservice.PrintService
。 声明此意向失败将导致系统忽略打印服务。 此外,打印服务必须请求 android.Manifest.permission#BIND_PRINT_SERVICE android.permission.BIND_PRINT_SERVICE
权限,以确保只有系统才能绑定到它。 声明此意向失败将导致系统忽略打印服务。 下面是一个示例声明:
<service android:name=".MyPrintService"
android:permission="android.permission.BIND_PRINT_SERVICE">
<intent-filter>
<action android:name="android.printservice.PrintService" />
</intent-filter>
. . .
</service>
<h3>配置</h3>
可以通过指定公开服务特定设置的可选设置活动、用于手动添加打印机、供应商名称等的可选添加打印机活动来配置打印服务。系统有责任在适当情况下启动设置和添加打印机活动。
通过在声明服务时在清单中提供条目 #SERVICE_META_DATA meta-data
来配置打印服务。 下面提供了包含元数据标记的服务声明:
<service android:name=".MyPrintService"
android:permission="android.permission.BIND_PRINT_SERVICE">
<intent-filter>
<action android:name="android.printservice.PrintService" />
</intent-filter>
<meta-data android:name="android.printservice" android:resource="@xml/printservice" />
</service>
</p>
有关如何通过元数据配置打印服务的更多详细信息,请参阅 #SERVICE_META_DATA
和 <{@link android.R.styleable#PrintService print-service}>
。
<strong>Note: </strong> All callbacks in this class are executed on the main application thread. 还应在主应用程序线程上调用此类的任何方法。
适用于 . 的 android.printservice.PrintService
Java 文档
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。
构造函数
PrintService() | |
PrintService(IntPtr, JniHandleOwnership) |
创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。 |
字段
AccessibilityService |
|
AccountService |
|
ActivityService |
|
AlarmService |
|
AppOpsService |
用于 |
AppSearchService |
|
AppwidgetService |
|
AudioService |
用于 |
BatteryService |
|
BindAllowActivityStarts |
已过时.
|
BindExternalServiceLong |
的工作方式与 |
BindNotPerceptible |
已过时.
|
BindSharedIsolatedProcess |
已过时.
标志: |
BiometricService |
|
BlobStoreService |
|
BluetoothService |
|
BugreportService |
用于捕获 bug 报告的服务。 (继承自 Context) |
CameraService |
|
CaptioningService |
用于 |
CarrierConfigService |
用于 |
ClipboardService |
|
CompanionDeviceService |
|
ConnectivityDiagnosticsService |
用于 |
ConnectivityService |
用于 |
ConsumerIrService |
用于 |
CredentialService |
|
CrossProfileAppsService |
用于 |
DeviceIdDefault |
默认设备 ID,即主设备(非虚拟)设备的 ID。 (继承自 Context) |
DeviceIdInvalid |
设备 ID 无效。 (继承自 Context) |
DeviceLockService |
|
DevicePolicyService |
|
DisplayHashService |
|
DisplayService |
|
DomainVerificationService |
|
DownloadService |
与 |
DropboxService |
|
EuiccService |
|
ExtraCanSelectPrinter |
|
ExtraPrintDocumentInfo |
如果通过 声明了具有高级打印选项的可选活动 |
ExtraPrinterInfo |
如果通过 声明了具有高级打印选项的可选活动 |
ExtraPrintJobInfo |
如果通过属性声明了具有高级打印选项的 |
ExtraSelectPrinter |
如果此布尔值额外设置在 |
FileIntegrityService |
|
FingerprintService |
用于 |
GameService |
|
GrammaticalInflectionService |
|
HardwarePropertiesService |
用于 |
HealthconnectService |
|
InputMethodService |
用于 |
InputService |
|
IpsecService |
|
JobSchedulerService |
|
KeyguardService |
|
LauncherAppsService |
用于 |
LayoutInflaterService |
用于 |
LocaleService |
|
LocationService |
与 |
MediaCommunicationService |
|
MediaMetricsService |
用于 |
MediaProjectionService |
用于 |
MediaRouterService |
|
MediaSessionService |
用于 |
MidiService |
用于 |
NetworkStatsService |
用于 |
NfcService |
|
NotificationService |
与 |
NsdService |
用于 |
OverlayService |
|
PeopleService |
|
PerformanceHintService |
|
PowerService |
|
PrintService |
|
ReceiverExported |
已过时.
|
ReceiverNotExported |
已过时.
|
ReceiverVisibleToInstantApps |
已过时.
标志: |
RestrictionsService |
用于 |
RoleService |
用于 |
SearchService |
|
SensorService |
|
ServiceInterface |
|
ServiceMetaData |
|
ShortcutService |
|
StatusBarService |
|
StopForegroundDetach |
已过时.
选择器: |
StopForegroundLegacy |
选择器: |
StopForegroundRemove |
已过时.
选择器: |
StorageService |
用于 |
StorageStatsService |
|
SystemHealthService |
|
TelecomService |
|
TelephonyImsService |
|
TelephonyService |
用于 |
TelephonySubscriptionService |
用于 |
TextClassificationService |
|
TextServicesManagerService |
用于 |
TvInputService |
|
TvInteractiveAppService |
|
UiModeService |
用于 |
UsageStatsService |
|
UsbService |
用于 |
UserService |
用于 |
VibratorManagerService |
用于 |
VibratorService |
用于 |
VirtualDeviceService |
用于 |
VpnManagementService |
|
WallpaperService |
用于 |
WifiAwareService |
用于 |
WifiP2pService |
用于 |
WifiRttRangingService |
与 |
WifiService |
用于 |
WindowService |
|
属性
ActivePrintJobs |
获取此服务管理的打印机的活动打印作业。 |
Application |
返回拥有此服务的应用程序。 (继承自 Service) |
ApplicationContext |
返回当前进程的单个全局 Application 对象的上下文。 (继承自 ContextWrapper) |
ApplicationInfo |
返回此上下文包的完整应用程序信息。 (继承自 ContextWrapper) |
Assets |
返回应用程序的包的 AssetManager 实例。 (继承自 ContextWrapper) |
AttributionSource |
这是实现打印服务的基类。 (继承自 Context) |
AttributionTag |
属性可用于复杂应用中,以逻辑方式分隔应用的各个部分。 (继承自 Context) |
BaseContext | (继承自 ContextWrapper) |
CacheDir |
返回文件系统上特定于应用程序的缓存目录的绝对路径。 (继承自 ContextWrapper) |
Class |
返回此 |
ClassLoader |
返回可用于检索此包中的类的类加载程序。 (继承自 ContextWrapper) |
CodeCacheDir |
返回文件系统上用于存储缓存代码的应用程序特定缓存目录的绝对路径。 (继承自 ContextWrapper) |
ContentResolver |
返回应用程序的包的 ContentResolver 实例。 (继承自 ContextWrapper) |
DataDir |
这是实现打印服务的基类。 (继承自 ContextWrapper) |
DeviceId |
获取与此上下文关联的设备 ID。 (继承自 Context) |
Display |
获取与此上下文关联的显示。 (继承自 Context) |
ExternalCacheDir |
返回主外部文件系统上目录的绝对路径(位于应用程序可以放置其拥有的缓存文件的某个位置 ExternalStorageDirectory )。 (继承自 ContextWrapper) |
FilesDir |
返回存储使用 OpenFileOutput(String, FileCreationMode) 文件创建的文件系统上的目录的绝对路径。 (继承自 ContextWrapper) |
ForegroundServiceType |
如果服务已通过调用成为前台服务 |
Handle |
基础 Android 实例的句柄。 (继承自 Object) |
IsDeviceProtectedStorage |
这是实现打印服务的基类。 (继承自 ContextWrapper) |
IsRestricted |
指示此上下文是否受到限制。 (继承自 Context) |
IsUiContext |
如果 |
JniIdentityHashCode |
这是实现打印服务的基类。 (继承自 Object) |
JniPeerMembers |
这是实现打印服务的基类。 |
MainExecutor |
|
MainLooper |
返回当前进程的主线程的 Looper。 (继承自 ContextWrapper) |
NoBackupFilesDir |
返回文件系统上目录的绝对路径,类似于 FilesDir. (继承自 ContextWrapper) |
ObbDir |
返回可在其中找到此应用程序的 OBB 文件(如果有)的主外部存储目录。 (继承自 ContextWrapper) |
OpPackageName |
返回应该用于 |
PackageCodePath |
返回此上下文的主要 Android 包的完整路径。 (继承自 ContextWrapper) |
PackageManager |
返回 PackageManager 实例以查找全局包信息。 (继承自 ContextWrapper) |
PackageName |
返回此应用程序的包的名称。 (继承自 ContextWrapper) |
PackageResourcePath |
返回此上下文的主要 Android 包的完整路径。 (继承自 ContextWrapper) |
Params |
返回创建此上下文时所使用的参数集(如果通过该 |
PeerReference |
这是实现打印服务的基类。 (继承自 Object) |
Resources |
返回应用程序的包的资源实例。 (继承自 ContextWrapper) |
Theme |
返回与此上下文关联的 Theme 对象。 (继承自 ContextWrapper) |
ThresholdClass |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 |
ThresholdType |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 |
Wallpaper | (继承自 ContextWrapper) |
WallpaperDesiredMinimumHeight | (继承自 ContextWrapper) |
WallpaperDesiredMinimumWidth | (继承自 ContextWrapper) |
方法
显式接口实现
IJavaPeerable.Disposed() |
这是实现打印服务的基类。 (继承自 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
这是实现打印服务的基类。 (继承自 Object) |
IJavaPeerable.Finalized() |
这是实现打印服务的基类。 (继承自 Object) |
IJavaPeerable.JniManagedPeerState |
这是实现打印服务的基类。 (继承自 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
这是实现打印服务的基类。 (继承自 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
这是实现打印服务的基类。 (继承自 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
这是实现打印服务的基类。 (继承自 Object) |
扩展方法
JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
JavaCast<TResult>(IJavaObject) |
这是实现打印服务的基类。 |
GetJniTypeName(IJavaPeerable) |
这是实现打印服务的基类。 |