aboutsummaryrefslogtreecommitdiff
path: root/admin/AppRestrictionSchema/template-params.xml
blob: 3e7a2024e8342d13a392a82ae231133458d7ee88 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<?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>23</minSdk>

    <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>