Home | History | Annotate | Download | only in admin
      1 page.title=Supporting Multiple Users
      2 @jd:body
      3 
      4 <!--
      5     Copyright 2015 The Android Open Source Project
      6 
      7     Licensed under the Apache License, Version 2.0 (the "License");
      8     you may not use this file except in compliance with the License.
      9     You may obtain a copy of the License at
     10 
     11         http://www.apache.org/licenses/LICENSE-2.0
     12 
     13     Unless required by applicable law or agreed to in writing, software
     14     distributed under the License is distributed on an "AS IS" BASIS,
     15     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     16     See the License for the specific language governing permissions and
     17     limitations under the License.
     18 -->
     19 <div id="qv-wrapper">
     20   <div id="qv">
     21     <h2>In this document</h2>
     22     <ol id="auto-toc">
     23     </ol>
     24   </div>
     25 </div>
     26 
     27 <p>This document describes the Android multi-user feature. It allows more than one
     28 user on a single Android device by separating their accounts and application
     29 data. For instance, parents may let their children use the family tablet. Or a
     30 critical team might share a mobile device for on-call duty.</p>
     31 
     32 <h1 id=definitions>Definitions</h1>
     33 
     34 <p>Before supporting multiple Android users, you should understand the basic
     35 concepts involved. Here are the primary terms used when describing Android
     36 users and accounts:</p>
     37 
     38 <ul>
     39   <li><em>User</em> - Each user is intended to be used by a different physical person. Each user
     40 has distinct application data and some unique settings, as well as a user
     41 interface to explicitly switch between users. A user can run in the background
     42 when another user is active; the system manages shutting down users to conserve
     43 resources when appropriate. Secondary users can be created either directly via
     44 the primary user interface or from a <a
     45 href="https://developer.android.com/guide/topics/admin/device-admin.html">Device
     46 Administration</a> application.
     47   <li><em>Account</em> - Accounts are contained within a user but are not defined by a user. Nor is a
     48 user defined by or linked to any given account. Users and profiles contain
     49 their own unique accounts but are not required to have accounts to be
     50 functional. The list of accounts differs by user. See the <a href="https://developer.android.com/reference/android/accounts/Account.html">Account class</a> definition.
     51   <li><em>Profile<strong></em> </strong>- A profile has separated app data but shares some system-wide settings (for
     52 example, Wi-Fi and Bluetooth). A profile is a subset of and tied to the
     53 existence of a user. A user can have multiple profiles. They are created
     54 through a <a href="https://developer.android.com/guide/topics/admin/device-admin.html">Device
     55 Administration</a> application. A profile always has an immutable
     56 association to a parent user, defined by the user that created the profile.
     57 Profiles do not live beyond the lifetime of the creating user.
     58   <li><em>App</em> - An applications data exists within each associated user. App data is
     59 sandboxed from other applications within the same user. Apps within the same
     60 user can interact with each other via IPC. See <a href="https://developer.android.com/training/enterprise/index.html">Building Apps for Work</a>.
     61 </ul>
     62 
     63 <h2 id=user_types>User types</h2>
     64 
     65 <ul>
     66   <li><em>Primary</em> - The first user added to a device. The primary user cannot be removed except
     67 by factory reset. This user also has some special privileges and settings only
     68 it can set. The primary user is always running even when other users are in the
     69 foreground.
     70   <li><em>Secondary</em> - Any user added to the device other than the primary user. They can be
     71 removed by either themselves or the primary user and cannot impact other users
     72 on a device. Secondary users can run in the background and will continue to
     73 have network connectivity when they do.
     74   <li><em>Guest<strong></em> </strong>- A guest user is a temporary secondary user with an explicit option to quick
     75 delete the guest user when its usefulness is over. There can be only one guest
     76 user at a time.
     77 </ul>
     78 
     79 <h2 id=profile_types>Profile types</h2>
     80 
     81 <ul>
     82   <li><em>Managed<strong></em> </strong>- Managed profiles are created by an application to contain work data and
     83 apps. They are managed exclusively by the profile owner, the app who created
     84 the corp profile. Launcher, notifications and recent tasks are shared by the
     85 primary user and the corp profile.
     86   <li><em>Restricted</em> - Restricted profiles use the accounts based off the primary user. The Primary
     87 user can control what apps are available on the restricted profile. Restricted
     88 profiles are available only on tablets.
     89 </ul>
     90 
     91 <h1 id=effects>Effects</h1>
     92 
     93 <p>When users are added to a device, some functionality will be curtailed when
     94 another user is in the foreground. Since app data is separated by user, the
     95 state of those apps differs by user. For example, email destined for an account
     96 of a user not currently in focus wont be available until that user and account
     97 are active on the device.</p>
     98 
     99 <p>The default state is only the primary user has full access to phone calls and
    100 texts. The secondary user may receive inbound calls but cannot send or receive
    101 texts. The primary user must enable these functions for others.</p>
    102 
    103  <p class="note"><strong>Note</strong>: To enable or disable the phone and SMS functions for a secondary user, go to
    104 Settings > Users, select the user, and switch the <em>Allow phone calls and SMS</em> setting to off.</p>
    105 
    106 <p>Please note, some restrictions exist when a secondary user is in background.
    107 For instance, the background secondary user will not be able to display the
    108 user interface or make Bluetooth services active. Finally, background secondary
    109 users will be halted by the system process if the device needs additional
    110 memory for operations in the foreground user.</p>
    111 
    112 <p>Here are aspects of behavior to keep in mind when employing multiple users on
    113 an Android device:</p>
    114 
    115 <ul>
    116   <li>Notifications appear for all accounts of a single user at once.
    117   <li>Notifications for other users do not appear until they are active.
    118   <li>Each user gets his or her own workspace to install and place apps.
    119   <li>No user has access to the app data of another user.
    120   <li>Any user can affect the installed apps for all users.
    121   <li>The primary user can remove apps or even the entire workspace established by
    122 secondary users.
    123 </ul>
    124 
    125 <h1 id=implementation>Implementation</h1>
    126 
    127 <h2 id=managing_users>Managing users</h2>
    128 
    129 <p>Management of users and profiles (with the exception of restricted profiles) is
    130 performed by applications that programmatically invoke API in the <code>DevicePolicyManager</code> class to restrict use.</p>
    131 
    132 <p>Schools and enterprises may employ users and profiles to manage the lifetime
    133 and scope of apps and data on devices. They may use the types outlined above in
    134 conjunction with the <a href="http://developer.android.com/reference/android/os/UserManager.html">UserManager API</a> to build unique solutions tailored to their use cases.</p>
    135 
    136 <h2 id=applying_the_overlay>Applying the overlay</h2>
    137 
    138 <p>The multi-user feature is disabled by default in the Android 5.0 release. To
    139 enable it, device manufacturers must define a resource overlay that replaces
    140 the following values in frameworks/base/core/res/res/values/config.xml:</p>
    141 
    142 <pre>
    143 &lt;!--  Maximum number of supported users --&gt;
    144 &lt;integer name="config_multiuserMaximumUsers"&gt;1&lt;/integer&gt;
    145 &lt;!--  Whether Multiuser UI should be shown --&gt;
    146 &lt;bool name="config_enableMultiUserUI"&gt;false&lt;/bool&gt;
    147 </pre>
    148 
    149 <p>To apply this overlay and enable guest and secondary users on the device, use the
    150 <code>DEVICE_PACKAGE_OVERLAYS</code> feature of the Android build system to:</p>
    151 
    152 <ul>
    153   <li> Replace the value for <code>config_multiuserMaximumUsers</code> with one greater than 1
    154   <li> Replace the value of <code>config_enableMultiUserUI</code> with: <code>true</code>
    155 </ul>
    156 
    157 <p>Device manufacturers may decide upon the maximum number of users.</p>
    158 
    159 <p>That said, if device manufacturers or others have modified settings, they need
    160 to ensure SMS and telephony work as defined in the <a
    161 href="{@docRoot}compatibility/android-cdd.pdf">Android Compatibility Definition
    162 Document</a> (CDD).</p>
    163