Add method to tell the dpc if provisioning is allowed.
The DPC can use it to tell if provisioning a managed profile or for
device owner would work or not.
BUG:25338478
Change-Id: I09ea6a9f23a8e88e4ed37c048170b2a68213086e
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java
index 0fdf3d3..6a3f8e6 100644
--- a/core/java/android/app/admin/DevicePolicyManager.java
+++ b/core/java/android/app/admin/DevicePolicyManager.java
@@ -4299,4 +4299,23 @@
return PERMISSION_GRANT_STATE_DEFAULT;
}
}
+
+ /**
+ * Returns if provisioning a managed profile or device is possible or not.
+ * @param action One of {@link #ACTION_PROVISION_MANAGED_DEVICE},
+ * {@link #ACTION_PROVISION_MANAGED_PROFILE}.
+ * Note that even if this method returns true, there is a slight possibility that the
+ * provisioning will not be allowed when it is actually initiated because some event has
+ * happened in between.
+ * @return if provisioning a managed profile or device is possible or not.
+ * @throws IllegalArgumentException if the supplied action is not valid.
+ */
+ public boolean isProvisioningAllowed(String action) {
+ try {
+ return mService.isProvisioningAllowed(action);
+ } catch (RemoteException re) {
+ Log.w(TAG, "Failed talking with device policy service", re);
+ return false;
+ }
+ }
}