| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Copyright 2014 The Android Open Source Project |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <sample> |
| <name>AppRestrictionSchema</name> |
| <group>Admin</group> |
| <package>com.example.android.apprestrictionschema</package> |
| |
| <minSdk>21</minSdk> |
| <compileSdkVersion>21</compileSdkVersion> |
| |
| <strings> |
| <intro> |
| <![CDATA[ |
| This sample shows how to use app restrictions. This application has one boolean |
| restriction with a key \"can_say_hello\" that defines whether the only feature of this |
| app (press the button to show \"Hello\" message) is enabled or disabled. Use |
| AppRestrictionEnforcer sample to toggle the restriction. |
| ]]> |
| </intro> |
| </strings> |
| |
| <template src="base" /> |
| <template src="FragmentView" /> |
| <common src="logger" /> |
| <common src="activities" /> |
| |
| <metadata> |
| <status>PUBLISHED</status> |
| <categories>Device Admin</categories> |
| <technologies>Android</technologies> |
| <languages>Java</languages> |
| <solutions>Mobile</solutions> |
| <level>ADVANCED</level> |
| <icon>Application/main/big_icon.png</icon> |
| <screenshots> |
| <img>screenshots/main.png</img> |
| </screenshots> |
| <api_refs> |
| <android>android.content.RestrictionsManager</android> |
| </api_refs> |
| |
| <description> |
| A basic app showing how to allow a device administrator to restrict user |
| activities using the Android Device Administration API. The app exports |
| a custom policy that enables or disables a UI control. Device Administration |
| applications are able to enforce a specific value for this policy, as |
| directed by enterprise administrators. |
| </description> |
| |
| <intro> |
| <![CDATA[ |
| The [Android Device Administration API][1] allows enterprise administrators to |
| enforce specific policies on a managed device. The system provides policies |
| that control settings such as password complexity, screen lock, or camera |
| availability. Developers can also augment this list with custom policies |
| that control specific features within their applications. For example, |
| a web browser could provide access to a whitelist of allowed domains. |
| |
| The list of policies exposed by an app must be specified using a file |
| inside of the `res/xml` directory, using the `<restriction>` tag: |
| |
| ```xml |
| <restrictions xmlns:android="http://schemas.android.com/apk/res/android"> |
| |
| <restriction |
| android:defaultValue="false" |
| android:description="@string/description_can_say_hello" |
| android:key="can_say_hello" |
| android:restrictionType="bool" |
| android:title="@string/title_can_say_hello" /> |
| |
| </restrictions> |
| ``` |
| |
| In this sample, that file can be found at |
| `Application/src/main/res/xml/app_restrictions.xml`. This file must be |
| also be declared inside of `ApplicationManifest.xml` using a `<meta-data>` |
| element: |
| |
| ```xml |
| <meta-data |
| android:name="android.content.APP_RESTRICTIONS" |
| android:resource="@xml/app_restrictions" /> |
| ``` |
| |
| At runtime, the current list of restrictions enforced by policy can be |
| checked by calling [RestrictionsManager.getApplicationRestrictions()][2]. |
| |
| [1]: http://developer.android.com/guide/topics/admin/device-admin.html |
| [2]: https://developer.android.com/reference/android/content/RestrictionsManager.html#getApplicationRestrictions() |
| ]]> |
| </intro> |
| </metadata> |
| |
| </sample> |