RestrictionsManager Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Provides a mechanism for apps to query restrictions imposed by an entity that manages the user.
[Android.Runtime.Register("android/content/RestrictionsManager", DoNotGenerateAcw=true)]
public class RestrictionsManager : Java.Lang.Object
[<Android.Runtime.Register("android/content/RestrictionsManager", DoNotGenerateAcw=true)>]
type RestrictionsManager = class
inherit Object
- Inheritance
- Attributes
Remarks
Provides a mechanism for apps to query restrictions imposed by an entity that manages the user. Apps can also send permission requests to a local or remote device administrator to override default app-specific restrictions or any other operation that needs explicit authorization from the administrator.
Apps can expose a set of restrictions via an XML file specified in the manifest.
If the user has an active Restrictions Provider, dynamic requests can be made in addition to the statically imposed restrictions. Dynamic requests are app-specific and can be expressed via a predefined set of request types.
The RestrictionsManager forwards the dynamic requests to the active Restrictions Provider. The Restrictions Provider can respond back to requests by calling #notifyPermissionResponse(String, PersistableBundle)
, when a response is received from the administrator of the device or user. The response is relayed back to the application via a protected broadcast, #ACTION_PERMISSION_RESPONSE_RECEIVED
.
Static restrictions are specified by an XML file referenced by a meta-data attribute in the manifest. This enables applications as well as any web administration consoles to be able to read the list of available restrictions from the apk.
The syntax of the XML format is as follows:
<?xml version="1.0" encoding="utf-8"?>
<restrictions xmlns:android="http://schemas.android.com/apk/res/android" >
<restriction
android:key="string"
android:title="string resource"
android:restrictionType=["bool" | "string" | "integer"
| "choice" | "multi-select" | "hidden"
| "bundle" | "bundle_array"]
android:description="string resource"
android:entries="string-array resource"
android:entryValues="string-array resource"
android:defaultValue="reference" >
<restriction ... />
...
</restriction>
<restriction ... />
...
</restrictions>
The attributes for each restriction depend on the restriction type.
<ul> <li>key
, title
and restrictionType
are mandatory.</li> <li>entries
and entryValues
are required if restrictionType
is choice
or multi-select
.</li> <li>defaultValue
is optional and its type depends on the restrictionType
</li> <li>hidden
type must have a defaultValue
and will not be shown to the administrator. It can be used to pass along data that cannot be modified, such as a version code.</li> <li>description
is meant to describe the restriction in more detail to the administrator controlling the values, if the title is not sufficient.</li> </ul>
Only restrictions of type bundle
and bundle_array
can have one or multiple nested restriction elements.
In your manifest's application
section, add the meta-data tag to point to the restrictions XML file as shown below:
<application ... >
<meta-data android:name="android.content.APP_RESTRICTIONS"
android:resource="@xml/app_restrictions" />
...
</application>
Java documentation for android.content.RestrictionsManager
.
Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.
Constructors
RestrictionsManager(IntPtr, JniHandleOwnership) |
A constructor used when creating managed representations of JNI objects; called by the runtime. |
Fields
ActionPermissionResponseReceived |
Broadcast intent delivered when a response is received for a permission request. |
ActionRequestLocalApproval |
Activity intent that is optionally implemented by the Restrictions Provider package to challenge for an administrator PIN or password locally on the device. |
ActionRequestPermission |
Broadcast intent sent to the Restrictions Provider to handle a permission request from an app. |
ExtraPackageName |
The package name of the application making the request. |
ExtraRequestBundle |
The request bundle passed in the |
ExtraRequestId |
The request ID passed in the |
ExtraRequestType |
The request type passed in the |
ExtraResponseBundle |
Contains a response from the administrator for specific request. |
MetaDataAppRestrictions |
Name of the meta-data entry in the manifest that points to the XML file containing the application's available restrictions. |
RequestKeyApproveLabel |
Key for request approval button label contained in the request bundle. |
RequestKeyData |
Key for request data contained in the request bundle. |
RequestKeyDenyLabel |
Key for request rejection button label contained in the request bundle. |
RequestKeyIcon |
Key for request icon contained in the request bundle. |
RequestKeyId |
Key for request ID contained in the request bundle. |
RequestKeyMessage |
Key for request message contained in the request bundle. |
RequestKeyNewRequest |
Key for issuing a new request, contained in the request bundle. |
RequestKeyTitle |
Key for request title contained in the request bundle. |
RequestTypeApproval |
Request type for a simple question, with a possible title and icon. |
ResponseKeyErrorCode |
Key for the optional error code in the response bundle sent to the application. |
ResponseKeyMessage |
Key for the optional message in the response bundle sent to the application. |
ResponseKeyResponseTimestamp |
Key for the optional timestamp of when the administrator responded to the permission request. |
ResponseKeyResult |
Key for the response result in the response bundle sent to the application, for a permission request. |
Properties
ApplicationRestrictions |
Returns any available set of application-specific restrictions applicable to this application. |
ApplicationRestrictionsPerAdmin |
Returns a |
Class |
Returns the runtime class of this |
Handle |
The handle to the underlying Android instance. (Inherited from Object) |
HasRestrictionsProvider |
Called by an application to check if there is an active Restrictions Provider. |
JniIdentityHashCode | (Inherited from Object) |
JniPeerMembers | |
PeerReference | (Inherited from Object) |
ThresholdClass |
This API supports the Mono for Android infrastructure and is not intended to be used directly from your code. |
ThresholdType |
This API supports the Mono for Android infrastructure and is not intended to be used directly from your code. |
Methods
Clone() |
Creates and returns a copy of this object. (Inherited from Object) |
ConvertRestrictionsToBundle(IList<RestrictionEntry>) |
Converts a list of restrictions to the corresponding bundle, using the following mapping:
<table>
<tr><th>RestrictionEntry</th><th>Bundle</th></tr>
<tr><td> |
CreateLocalApprovalIntent() | |
Dispose() | (Inherited from Object) |
Dispose(Boolean) | (Inherited from Object) |
Equals(Object) |
Indicates whether some other object is "equal to" this one. (Inherited from Object) |
GetHashCode() |
Returns a hash code value for the object. (Inherited from Object) |
GetManifestRestrictions(String) |
Parse and return the list of restrictions defined in the manifest for the specified package, if any. |
JavaFinalize() |
Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. (Inherited from Object) |
Notify() |
Wakes up a single thread that is waiting on this object's monitor. (Inherited from Object) |
NotifyAll() |
Wakes up all threads that are waiting on this object's monitor. (Inherited from Object) |
NotifyPermissionResponse(String, PersistableBundle) |
Called by the Restrictions Provider to deliver a response to an application. |
RequestPermission(String, String, PersistableBundle) |
Called by an application to request permission for an operation. |
SetHandle(IntPtr, JniHandleOwnership) |
Sets the Handle property. (Inherited from Object) |
ToArray<T>() | (Inherited from Object) |
ToString() |
Returns a string representation of the object. (Inherited from Object) |
UnregisterFromRuntime() | (Inherited from Object) |
Wait() |
Causes the current thread to wait until it is awakened, typically by being <em>notified</em> or <em>interrupted</em>. (Inherited from Object) |
Wait(Int64, Int32) |
Causes the current thread to wait until it is awakened, typically by being <em>notified</em> or <em>interrupted</em>, or until a certain amount of real time has elapsed. (Inherited from Object) |
Wait(Int64) |
Causes the current thread to wait until it is awakened, typically by being <em>notified</em> or <em>interrupted</em>, or until a certain amount of real time has elapsed. (Inherited from Object) |
Explicit Interface Implementations
IJavaPeerable.Disposed() | (Inherited from Object) |
IJavaPeerable.DisposeUnlessReferenced() | (Inherited from Object) |
IJavaPeerable.Finalized() | (Inherited from Object) |
IJavaPeerable.JniManagedPeerState | (Inherited from Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) | (Inherited from Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) | (Inherited from Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) | (Inherited from Object) |
Extension Methods
JavaCast<TResult>(IJavaObject) |
Performs an Android runtime-checked type conversion. |
JavaCast<TResult>(IJavaObject) | |
GetJniTypeName(IJavaPeerable) |