Implement Policy to disable printing.

This adds a new "isPrintingEnabled" policy (true by default)
and hooks it into PrintManagerService.

Bug: 64140119
Test: manual

Change-Id: Ifb0f6772af51e6185135e9dcf5551e9ef0d88af3
This commit is contained in:
Vladislav Kuzkokov
2018-01-15 15:04:05 +01:00
parent e6c2b50229
commit 792d58fbce
7 changed files with 203 additions and 2 deletions

View File

@@ -9197,4 +9197,50 @@ public class DevicePolicyManager {
throw re.rethrowFromSystemServer();
}
}
/**
* Allows/disallows printing.
*
* @param admin which {@link DeviceAdminReceiver} this request is associated with.
* @param enabled whether printing should be allowed or not.
* @throws SecurityException if {@code admin} is neither device, nor profile owner.
* @hide
*/
public void setPrintingEnabled(@NonNull ComponentName admin, boolean enabled) {
try {
mService.setPrintingEnabled(admin, enabled);
} catch (RemoteException re) {
throw re.rethrowFromSystemServer();
}
}
/**
* Returns whether printing is enabled for current user.
*
* @return {@code true} iff printing is enabled.
* @hide
*/
public boolean isPrintingEnabled() {
try {
return mService.isPrintingEnabled();
} catch (RemoteException re) {
throw re.rethrowFromSystemServer();
}
}
/**
* Returns error message to be displayed when printing is disabled.
*
* Used only by PrintService.
* @return Localized error message.
* @throws SecurityException if caller is not system.
* @hide
*/
public CharSequence getPrintingDisabledReason() {
try {
return mService.getPrintingDisabledReason();
} catch (RemoteException re) {
throw re.rethrowFromSystemServer();
}
}
}

View File

@@ -396,4 +396,8 @@ interface IDevicePolicyManager {
void setEndUserSessionMessage(in ComponentName admin, in CharSequence endUserSessionMessage);
CharSequence getStartUserSessionMessage(in ComponentName admin);
CharSequence getEndUserSessionMessage(in ComponentName admin);
void setPrintingEnabled(in ComponentName admin, boolean enabled);
boolean isPrintingEnabled();
CharSequence getPrintingDisabledReason();
}