Methods Summary |
---|
public boolean | block(java.lang.String reason)Blocks the print job. You should call this method if {@link
#isStarted()} or {@link #isBlocked()} returns true and you need
to block the print job. For example, the user has to add some
paper to continue printing. To resume the print job call {@link
#start()}.
PrintService.throwIfNotCalledOnMainThread();
PrintJobInfo info = getInfo();
final int state = info.getState();
if (state == PrintJobInfo.STATE_STARTED
|| (state == PrintJobInfo.STATE_BLOCKED
&& !TextUtils.equals(info.getStateReason(), reason))) {
return setState(PrintJobInfo.STATE_BLOCKED, reason);
}
return false;
|
public boolean | cancel()Cancels the print job. You should call this method if {@link
#isQueued()} or {@link #isStarted() or #isBlocked()} returns
true and you canceled the print job as a response to a call to
{@link PrintService#onRequestCancelPrintJob(PrintJob)}.
PrintService.throwIfNotCalledOnMainThread();
if (!isInImmutableState()) {
return setState(PrintJobInfo.STATE_CANCELED, null);
}
return false;
|
public boolean | complete()Completes the print job. You should call this method if {@link
#isStarted()} returns true and you are done printing.
PrintService.throwIfNotCalledOnMainThread();
if (isStarted()) {
return setState(PrintJobInfo.STATE_COMPLETED, null);
}
return false;
|
public boolean | equals(java.lang.Object obj)
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
PrintJob other = (PrintJob) obj;
return (mCachedInfo.getId().equals(other.mCachedInfo.getId()));
|
public boolean | fail(java.lang.String error)Fails the print job. You should call this method if {@link
#isQueued()} or {@link #isStarted()} or {@link #isBlocked()}
returns true you failed while printing.
PrintService.throwIfNotCalledOnMainThread();
if (!isInImmutableState()) {
return setState(PrintJobInfo.STATE_FAILED, error);
}
return false;
|
public int | getAdvancedIntOption(java.lang.String key)Gets the value of an advanced (printer specific) print option.
PrintService.throwIfNotCalledOnMainThread();
return getInfo().getAdvancedIntOption(key);
|
public java.lang.String | getAdvancedStringOption(java.lang.String key)Gets the value of an advanced (printer specific) print option.
PrintService.throwIfNotCalledOnMainThread();
return getInfo().getAdvancedStringOption(key);
|
public PrintDocument | getDocument()Gets the printed document.
PrintService.throwIfNotCalledOnMainThread();
return mDocument;
|
public android.print.PrintJobId | getId()Gets the unique print job id.
PrintService.throwIfNotCalledOnMainThread();
return mCachedInfo.getId();
|
public android.print.PrintJobInfo | getInfo()Gets the {@link PrintJobInfo} that describes this job.
Node:The returned info object is a snapshot of the
current print job state. Every call to this method returns a fresh
info object that reflects the current print job state.
PrintService.throwIfNotCalledOnMainThread();
if (isInImmutableState()) {
return mCachedInfo;
}
PrintJobInfo info = null;
try {
info = mPrintServiceClient.getPrintJobInfo(mCachedInfo.getId());
} catch (RemoteException re) {
Log.e(LOG_TAG, "Couldn't get info for job: " + mCachedInfo.getId(), re);
}
if (info != null) {
mCachedInfo = info;
}
return mCachedInfo;
|
public java.lang.String | getTag()Gets the print job tag.
PrintService.throwIfNotCalledOnMainThread();
return getInfo().getTag();
|
public boolean | hasAdvancedOption(java.lang.String key)Gets whether this job has a given advanced (printer specific) print
option.
PrintService.throwIfNotCalledOnMainThread();
return getInfo().hasAdvancedOption(key);
|
public int | hashCode()
return mCachedInfo.getId().hashCode();
|
public boolean | isBlocked()Gets whether this print job is blocked. Such a print job is halted
due to an abnormal condition and can be started or canceled or failed.
PrintService.throwIfNotCalledOnMainThread();
return getInfo().getState() == PrintJobInfo.STATE_BLOCKED;
|
public boolean | isCancelled()Gets whether this print job is cancelled. Such a print job was
cancelled as a result of a user request. This is a final state.
PrintService.throwIfNotCalledOnMainThread();
return getInfo().getState() == PrintJobInfo.STATE_CANCELED;
|
public boolean | isCompleted()Gets whether this print job is completed. Such a print job
is successfully printed. This is a final state.
PrintService.throwIfNotCalledOnMainThread();
return getInfo().getState() == PrintJobInfo.STATE_COMPLETED;
|
public boolean | isFailed()Gets whether this print job is failed. Such a print job is
not successfully printed due to an error. This is a final state.
PrintService.throwIfNotCalledOnMainThread();
return getInfo().getState() == PrintJobInfo.STATE_FAILED;
|
private boolean | isInImmutableState()
final int state = mCachedInfo.getState();
return state == PrintJobInfo.STATE_COMPLETED
|| state == PrintJobInfo.STATE_CANCELED
|| state == PrintJobInfo.STATE_FAILED;
|
public boolean | isQueued()Gets whether this print job is queued. Such a print job is
ready to be printed and can be started or cancelled.
PrintService.throwIfNotCalledOnMainThread();
return getInfo().getState() == PrintJobInfo.STATE_QUEUED;
|
public boolean | isStarted()Gets whether this print job is started. Such a print job is
being printed and can be completed or canceled or failed.
PrintService.throwIfNotCalledOnMainThread();
return getInfo().getState() == PrintJobInfo.STATE_STARTED;
|
private boolean | setState(int state, java.lang.String error)
try {
if (mPrintServiceClient.setPrintJobState(mCachedInfo.getId(), state, error)) {
// Best effort - update the state of the cached info since
// we may not be able to re-fetch it later if the job gets
// removed from the spooler as a result of the state change.
mCachedInfo.setState(state);
mCachedInfo.setStateReason(error);
return true;
}
} catch (RemoteException re) {
Log.e(LOG_TAG, "Error setting the state of job: " + mCachedInfo.getId(), re);
}
return false;
|
public boolean | setTag(java.lang.String tag)Sets a tag that is valid in the context of a {@link PrintService}
and is not interpreted by the system. For example, a print service
may set as a tag the key of the print job returned by a remote
print server, if the printing is off handed to a cloud based service.
PrintService.throwIfNotCalledOnMainThread();
if (isInImmutableState()) {
return false;
}
try {
return mPrintServiceClient.setPrintJobTag(mCachedInfo.getId(), tag);
} catch (RemoteException re) {
Log.e(LOG_TAG, "Error setting tag for job: " + mCachedInfo.getId(), re);
}
return false;
|
public boolean | start()Starts the print job. You should call this method if {@link
#isQueued()} or {@link #isBlocked()} returns true and you started
resumed printing.
PrintService.throwIfNotCalledOnMainThread();
final int state = getInfo().getState();
if (state == PrintJobInfo.STATE_QUEUED
|| state == PrintJobInfo.STATE_BLOCKED) {
return setState(PrintJobInfo.STATE_STARTED, null);
}
return false;
|