diff --git a/api/current.txt b/api/current.txt index ef9c038b29e8e..613146f0095bf 100644 --- a/api/current.txt +++ b/api/current.txt @@ -22617,6 +22617,7 @@ package android.os { field public static final java.lang.String DISALLOW_UNMUTE_MICROPHONE = "no_unmute_microphone"; field public static final java.lang.String DISALLOW_USB_FILE_TRANSFER = "no_usb_file_transfer"; field public static final java.lang.String ENSURE_VERIFY_APPS = "ensure_verify_apps"; + field public static final java.lang.String KEY_RESTRICTIONS_PENDING = "restrictions_pending"; } public abstract class Vibrator { diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index d3ff79d24434a..cf7c5e55e7a99 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -2586,6 +2586,10 @@ public class DevicePolicyManager { *

The application restrictions are only made visible to the target application and the * profile or device owner. * + *

If the restrictions are not available yet, but may be applied in the near future, + * the admin can notify the target application of that by adding + * {@link UserManager#KEY_RESTRICTIONS_PENDING} to the settings parameter. + * *

The calling device admin must be a profile or device owner; if it is not, a security * exception will be thrown. * @@ -2593,6 +2597,8 @@ public class DevicePolicyManager { * @param packageName The name of the package to update restricted settings for. * @param settings A {@link Bundle} to be parsed by the receiving application, conveying a new * set of active restrictions. + * + * @see UserManager#KEY_RESTRICTIONS_PENDING */ public void setApplicationRestrictions(ComponentName admin, String packageName, Bundle settings) { diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java index 3234e7742c3e6..8ffd8f41ba079 100644 --- a/core/java/android/os/UserManager.java +++ b/core/java/android/os/UserManager.java @@ -371,6 +371,24 @@ public class UserManager { */ public static final String DISALLOW_OUTGOING_BEAM = "no_outgoing_beam"; + /** + * Application restriction key that is used to indicate the pending arrival + * of real restrictions for the app. + * + *

+ * Applications that support restrictions should check for the presence of this key. + * A true value indicates that restrictions may be applied in the near + * future but are not available yet. It is the responsibility of any + * management application that sets this flag to update it when the final + * restrictions are enforced. + * + *

Key for application restrictions. + *

Type: Boolean + * @see android.app.admin.DevicePolicyManager#addApplicationRestriction() + * @see android.app.admin.DevicePolicyManager#getApplicationRestriction() + */ + public static final String KEY_RESTRICTIONS_PENDING = "restrictions_pending"; + /** @hide */ public static final int PIN_VERIFICATION_FAILED_INCORRECT = -3; /** @hide */