1 Android AppRestrictionSchema Sample 2 =================================== 3 4 A basic app showing how to allow a device administrator to restrict user 5 activities using the Android Device Administration API. The app exports 6 a custom policy that enables or disables a UI control. Device Administration 7 applications are able to enforce a specific value for this policy, as 8 directed by enterprise administrators. 9 10 Introduction 11 ------------ 12 13 The [Android Device Administration API][1] allows enterprise administrators to 14 enforce specific policies on a managed device. The system provides policies 15 that control settings such as password complexity, screen lock, or camera 16 availability. Developers can also augment this list with custom policies 17 that control specific features within their applications. For example, 18 a web browser could provide access to a whitelist of allowed domains. 19 20 The list of policies exposed by an app must be specified using a file 21 inside of the `res/xml` directory, using the `<restriction>` tag: 22 23 ```xml 24 <restrictions xmlns:android="http://schemas.android.com/apk/res/android"> 25 26 <restriction 27 android:defaultValue="false" 28 android:description="@string/description_can_say_hello" 29 android:key="can_say_hello" 30 android:restrictionType="bool" 31 android:title="@string/title_can_say_hello" /> 32 33 </restrictions> 34 ``` 35 36 In this sample, that file can be found at 37 `Application/src/main/res/xml/app_restrictions.xml`. This file must be 38 also be declared inside of `ApplicationManifest.xml` using a `<meta-data>` 39 element: 40 41 ```xml 42 <meta-data 43 android:name="android.content.APP_RESTRICTIONS" 44 android:resource="@xml/app_restrictions" /> 45 ``` 46 47 At runtime, the current list of restrictions enforced by policy can be 48 checked by calling [RestrictionsManager.getApplicationRestrictions()][2]. 49 50 [1]: http://developer.android.com/guide/topics/admin/device-admin.html 51 [2]: https://developer.android.com/reference/android/content/RestrictionsManager.html#getApplicationRestrictions() 52 53 Pre-requisites 54 -------------- 55 56 - Android SDK v21 57 - Android Build Tools v21.1.1 58 - Android Support Repository 59 60 Screenshots 61 ------------- 62 63 <img src="screenshots/main.png" height="400" alt="Screenshot"/> 64 65 Getting Started 66 --------------- 67 68 This sample uses the Gradle build system. To build this project, use the 69 "gradlew build" command or use "Import Project" in Android Studio. 70 71 Support 72 ------- 73 74 - Google+ Community: https://plus.google.com/communities/105153134372062985968 75 - Stack Overflow: http://stackoverflow.com/questions/tagged/android 76 77 If you've found an error in this sample, please file an issue: 78 https://github.com/googlesamples/android-AppRestrictionSchema 79 80 Patches are encouraged, and may be submitted by forking this project and 81 submitting a pull request through GitHub. Please see CONTRIBUTING.md for more details. 82 83 License 84 ------- 85 86 Copyright 2014 The Android Open Source Project, Inc. 87 88 Licensed to the Apache Software Foundation (ASF) under one or more contributor 89 license agreements. See the NOTICE file distributed with this work for 90 additional information regarding copyright ownership. The ASF licenses this 91 file to you under the Apache License, Version 2.0 (the "License"); you may not 92 use this file except in compliance with the License. You may obtain a copy of 93 the License at 94 95 http://www.apache.org/licenses/LICENSE-2.0 96 97 Unless required by applicable law or agreed to in writing, software 98 distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 99 WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 100 License for the specific language governing permissions and limitations under 101 the License. 102