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#complete() PrintJob.complete()
來標示為已完成,之後 PrintJob#isCompleted() PrintJob.isCompleted()
會傳回 true。 如果失敗,列印作業應該藉由呼叫 PrintJob#fail(String) PrintJob.fail( String)
之後 PrintJob#isFailed() PrintJob.isFailed()
傳回 true,將列印作業標示為失敗。
如果列印作業已排入佇列或啟動,且使用者要求取消它,列印服務將會收到來自服務的呼叫 #onRequestCancelPrintJob(PrintJob)
,以盡最大努力取消作業。 如果作業成功取消,其狀態必須透過呼叫 PrintJob#cancel() PrintJob.cancel()
來標示為取消,之後 PrintJob#isCancelled() PrintJob.isCacnelled()
才會傳回 true。
<h3>生命週期</h3>
列印服務的生命週期是由系統獨佔管理,並遵循已建立的服務生命週期。 此外,透過在裝置設定中啟用或停用列印服務,由明確的使用者動作獨佔觸發或停止列印服務。 在系統系結至列印服務之後,它會呼叫 #onConnected()
。 用戶端可以覆寫這個方法,以執行系結后設定。 此外,在系統解除系結與列印服務之後,它也會呼叫 #onDisconnected()
。 用戶端可以覆寫這個方法,以執行解除系結清除后。 系統與列印服務中斷連線之後,您不應該執行任何工作,因為服務可以隨時終止以回收記憶體。 如果印表機所管理的印表機有作用中的列印作業,系統將不會中斷與印表服務的連線。
<h3>宣告</h3>
列印服務會在AndroidManifest.xml中宣告為任何其他服務,但也必須指定它以動作 #SERVICE_INTERFACE android.printservice.PrintService
處理 android.content.Intent
。 無法宣告此意圖會導致系統忽略列印服務。 此外,列印服務必須要求 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> This class all callbacks are executed on the main application thread. 您也應該在主要應用程式線程上叫用這個類別的任何方法。
的 android.printservice.PrintService
Java 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
PrintService() | |
PrintService(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
欄位
AccessibilityService |
使用 搭配 |
AccountService |
使用 搭配 |
ActivityService |
使用 來 |
AlarmService |
使用 搭配 |
AppOpsService |
使用搭配 |
AppSearchService |
使用 搭配 |
AppwidgetService |
使用 搭配 |
AudioService |
使用 搭配 |
BatteryService |
使用搭配 |
BindAllowActivityStarts |
已淘汰.
|
BindExternalServiceLong |
的運作方式與 |
BindNotPerceptible |
已淘汰.
旗標: |
BindSharedIsolatedProcess |
已淘汰.
旗標: |
BiometricService |
使用 來 |
BlobStoreService |
使用 搭配 |
BluetoothService |
使用 搭配 |
BugreportService |
擷取 Bugreport 的服務。 (繼承來源 Context) |
CameraService |
使用 來 |
CaptioningService |
使用 搭配 |
CarrierConfigService |
使用 搭配 |
ClipboardService |
使用搭配 |
CompanionDeviceService |
使用搭配 |
ConnectivityDiagnosticsService |
使用 搭配 |
ConnectivityService |
使用搭配 |
ConsumerIrService |
使用 搭配 |
CredentialService |
使用搭配 |
CrossProfileAppsService |
使用 搭配 |
DeviceIdDefault |
默認裝置識別碼,這是主要(非虛擬)裝置的標識碼。 (繼承來源 Context) |
DeviceIdInvalid |
無效的裝置識別碼。 (繼承來源 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 |
取得此內容相關聯的裝置標識碼。 (繼承來源 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 |
傳回目前進程之主線程的迴圈器。 (繼承來源 ContextWrapper) |
NoBackupFilesDir |
傳回檔案系統上目錄的絕對路徑,類似於 FilesDir。 (繼承來源 ContextWrapper) |
ObbDir |
傳回此應用程式 OBB 檔案(如果有的話)可找到的主要外部記憶體目錄。 (繼承來源 ContextWrapper) |
OpPackageName |
傳回應該用於 |
PackageCodePath |
傳回此內容主要 Android 套件的完整路徑。 (繼承來源 ContextWrapper) |
PackageManager |
傳回 PackageManager 實例以尋找全域套件資訊。 (繼承來源 ContextWrapper) |
PackageName |
傳回此應用程式套件的名稱。 (繼承來源 ContextWrapper) |
PackageResourcePath |
傳回此內容主要 Android 套件的完整路徑。 (繼承來源 ContextWrapper) |
Params |
如果透過 建立此內容,則傳回此內容所建立 |
PeerReference |
這是實作列印服務的基類。 (繼承來源 Object) |
Resources |
傳回應用程式套件的 Resources 實例。 (繼承來源 ContextWrapper) |
Theme |
傳回與此內容相關聯的 Theme 物件。 (繼承來源 ContextWrapper) |
ThresholdClass |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
ThresholdType |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
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) |
這是實作列印服務的基類。 |