Поддержка нескольких пользователей

Android поддерживает несколько пользователей на одном устройстве Android, разделяя учетные записи пользователей и данные приложений. Например, родители могут разрешить своим детям пользоваться семейным планшетом, семья может пользоваться автомобилем, а группа критического реагирования может использовать мобильное устройство для дежурства по вызову.

Терминология

Android использует следующие термины при описании пользователей и учетных записей Android.

Общий

В управлении устройствами Android используются следующие общие термины.

  • Пользователь. Каждый пользователь предназначен для использования другого физического лица. У каждого пользователя есть отдельные данные приложения и некоторые уникальные настройки, а также пользовательский интерфейс для явного переключения между пользователями. Пользователь может работать в фоновом режиме, когда другой пользователь активен; система управляет завершением работы пользователей для экономии ресурсов, когда это необходимо. Вторичные пользователи могут создаваться либо непосредственно через интерфейс пользователя или от администратора устройства приложения.
  • Счет. Учетные записи содержатся внутри пользователя, но не определяются пользователем, а пользователь не определяется или не связан с какой-либо конкретной учетной записью. Пользователи и профили содержат свои собственные уникальные учетные записи, но не обязаны иметь учетные записи для работы. Список учетных записей различается в зависимости от пользователя. Для получения дополнительной информации обратитесь к классу счетов определению.
  • Профиль. Профиль содержит отдельные данные приложения, но общие настройки системы (например, Wi-Fi и Bluetooth). Профиль - это подмножество и привязка к существованию пользователя. У пользователя может быть несколько профилей. Профили создаются через администрирование устройства приложения. Профиль всегда имеет неизменную связь с родительским пользователем, определяемую пользователем, создавшим профиль. Профили не существуют по истечении срока жизни создавшего пользователя.
  • Приложение Данные приложения существуют внутри каждого связанного пользователя. Данные приложения изолированы от других приложений в пределах того же пользователя. Приложения одного пользователя могут взаимодействовать друг с другом через IPC. Для получения дополнительной информации обратитесь к Android для предприятия .

Категории пользователей

Администрирование устройства Android использует следующие категории пользователей.

  • Системный пользователь. Первый пользователь добавлен на устройство. Системного пользователя нельзя удалить, кроме как путем сброса к заводским настройкам, и он всегда работает, даже когда другие пользователи находятся на переднем плане. У этого пользователя также есть особые привилегии и настройки, которые он может установить.
  • Вторичный пользователь. Любой пользователь, добавленный к устройству, кроме пользователя системы. Вторичные пользователи могут быть удалены (сами по себе или администратором) и не могут влиять на других пользователей на устройстве. Эти пользователи могут работать в фоновом режиме и по-прежнему иметь возможность подключения к сети.
  • Пользователь Гость. Временный вторичный пользователь. У гостевых пользователей есть явная возможность быстро удалить гостя, когда его полезность закончится. Одновременно может быть только один гость.
  • Администратор пользователя. Пользователь, у которого есть разрешение на создание и удаление других пользователей, а также на управление некоторыми общими многопользовательскими настройками. По умолчанию администратором является только системный пользователь.

Категории профилей

Администрирование устройства Android использует следующие категории профилей.

  • Управляемый профиль. Создано приложением для хранения рабочих данных и приложений. Ими управляет исключительно владелец профиля (приложение, создавшее корпоративный профиль). Панель запуска, уведомления и недавние задачи используются родительским пользователем и корпоративным профилем.
  • Ограниченный профиль. Использует учетные записи на основе родительского пользователя, который может контролировать, какие приложения доступны в ограниченном профиле. Доступно только на планшетах и ​​телевизионных устройствах.

Типы пользователей

Android 11 сформулировал выше классификации пользователей и профилей в четко определенных типов пользователей, представляющих все различные типы пользователей и профилей , разрешенные функции многопользовательского Android.

Предварительно определенные типы пользователей AOSP определены frameworks/base/core/java/android/os/UserManager.java и в настоящее время включает в себя:

  • android.os.usertype.full.SYSTEM
  • android.os.usertype.full.SECONDARY
  • android.os.usertype.full.GUEST
  • android.os.usertype.full.DEMO
  • android.os.usertype.full.RESTRICTED
  • android.os.usertype.profile.MANAGED
  • android.os.usertype.system.HEADLESS

OEM - производители имеют возможность конфигурировать эти пользовательские типы путем наложения frameworks/base/core/res/res/xml/config_user_types.xml файл. Это облегчает изменение конфигурации по умолчанию для каждого типа пользователей, включая ограничения по умолчанию, значки, значки и максимально допустимое количество пользователей.

В дополнение к настраиваемым типам пользователей AOSP, OEM - производители могут определять новые типы профилей с помощью frameworks/base/core/res/res/xml/config_user_types.xml файла. Это позволяет OEM-производителям при желании вводить свои собственные неуправляемые типы профилей. Тем не менее, OEM-производитель несет ответственность за внесение изменений в платформу, необходимых для поддержки изменений, включая изменение любого кода, который проверяет управляемые профили, чтобы теперь обрабатывать новый тип профиля, если это необходимо.

Включение многопользовательского режима

Начиная с Android 5.0, многопользовательская функция по умолчанию отключена. Чтобы включить эту функцию, производители устройств должны определить накладку ресурс , который заменяет следующие значения в frameworks/base/core/res/res/values/config.xml :

<!--  Maximum number of supported users -->
<integer name="config_multiuserMaximumUsers">1</integer>
<!--  Whether Multiuser UI should be shown -->
<bool name="config_enableMultiUserUI">false</bool>

Чтобы применить эту накладку и включить гость и вторичные пользователь на устройстве, используйте DEVICE_PACKAGE_OVERLAYS особенности системы Android сборки , чтобы заменить значение:

  • config_multiuserMaximumUsers с большей ценностью , чем 1
  • config_enableMultiUserUI с true

Производители устройств могут выбрать максимальное количество пользователей. Если производители устройств или другие изменили настройки, они должны обеспечить SMS и телефонной работы , как это определено в определении Android совместимости документов (CDD).

Управление несколькими пользователями

Управление пользователей и профилей (за исключением ограниченных профилей) выполняются приложениями , которые программный вызов API в DevicePolicyManager классе ограничить использование.

Школы и предприятия могут использовать пользователи и профили для управления сроком службы и объемом приложений и данных на устройствах, с использованием типов , описанные выше , в сочетании с UserManager API для создания уникальных решений с учетом их прецеденты.

Многопользовательское поведение системы

Когда пользователи добавляются к устройству, некоторые функции ограничиваются, когда другой пользователь находится на переднем плане. Поскольку данные приложений разделяются по пользователям, состояние этих приложений зависит от пользователя. Например, электронная почта, предназначенная для учетной записи пользователя, который в данный момент не в фокусе, будет недоступна, пока этот пользователь и учетная запись не будут активны на устройстве.

По умолчанию только пользователь системы имеет полный доступ к телефонным звонкам и текстовым сообщениям. Дополнительный пользователь может принимать входящие вызовы, но не может отправлять или получать тексты. Пользователь с правами администратора должен включить эти функции для других.

Примечание: Для того, чтобы включить или выключить телефон и SMS - функции для вторичного пользователя, перейдите в раздел Настройки> Пользователи, выберите пользователя, а переключатель Разрешить телефонные звонки и SMS настройки для отключения.

Некоторые ограничения существуют, когда вторичный пользователь находится в фоновом режиме. Например, фоновый вторичный пользователь не может отображать пользовательский интерфейс или активировать службы Bluetooth. Кроме того, системный процесс остановит фоновых вторичных пользователей, если устройству потребуется дополнительная память для операций в активном пользователе.

При использовании нескольких пользователей на устройстве Android помните следующее:

  • Уведомления появляются сразу для всех учетных записей одного пользователя.
  • Уведомления для других пользователей не появляются, пока они не станут активными.
  • Каждый пользователь получает рабочее пространство для установки и размещения приложений.
  • Ни один пользователь не имеет доступа к данным приложения другого пользователя.
  • Любой пользователь может повлиять на установленные приложения для всех пользователей.
  • Пользователь-администратор может удалять приложения или даже всю рабочую область, созданную второстепенными пользователями.

Android 7.0 включает несколько улучшений, в том числе:

  • Переключение рабочего профиля. Пользователи могут отключить свой управляемый профиль (например, когда не на работе). Эта функциональность достигается остановкой пользователя; UserManagerService называет ActivityManagerNative#stopUser() .
  • Всегда-на VPN. Приложения VPN теперь могут быть включены пользователем, DPC устройства или DPC с управляемым профилем (применимо только к приложениям с управляемым профилем). Если этот параметр включен, приложения не могут получить доступ к общедоступной сети (доступ к сетевым ресурсам прекращается до тех пор, пока VPN не подключится, и соединения не будут маршрутизироваться через нее). Устройства, отчет device_admin должен осуществить всегда на VPN.

Для получения более подробной информации о Android функций администрирования устройств 7,0 см Android для работы .

Android Автомобильная многопользовательская

Android Automotive полагается на многопользовательскую реализацию Android, чтобы обеспечить совместное использование устройства.

Типы пользователей автомобильной промышленности

В дополнение к перечисленным выше типам пользователей автомобильные сборки примечательны следующими типами пользователей:

  • Безголовый пользователь системы. Системный пользователь размещает все системные службы. Для поддержки нескольких пользователей на Automotive, пользователь системы должен быть без головы. Есть только один пользователь без головы. Пользователь безголовой системы:
    • Всегда должен работать в фоновом режиме.
    • Пользователь не может удалить или получить к нему доступ напрямую, за исключением случая инициализации устройства. Например, пользователи не могут переключиться на этот тип пользователя для выполнения таких задач, как загрузка приложений или добавление учетных записей.
    • Можно очистить только с помощью заводского сброса.
  • Обычные пользователи. Же , как и вторичных пользователей , описанных выше, за исключением того, что вторичные пользователей:
    • Не запускайте в фоновом режиме (после отключения).
    • Может быть создан непосредственно через пользовательский интерфейс.
    • Разделили данные приложения, но разделяете некоторые общесистемные настройки. Например, Wi-Fi и Bluetooth.

Предостережения

Следующие исключения применяются к пользователям системы без головы и обычным (вторичным) пользователям в автомобильной промышленности:

  • Пользователь безголовой системы не поддерживает рабочие профили.
  • По умолчанию обычные (второстепенные) пользователи имеют полный доступ к телефонным звонкам и текстовым сообщениям.
  • По умолчанию обычные (вторичные) пользователи не работают в фоновом режиме.

Включение пользователя системы без головы

Начиная с Android 10, многопользовательская функция может использоваться в автомобилях. Важные отличия включают:

  • Системный пользователь не имеет головы и работает только в фоновом режиме.
  • Пользователи-люди не взаимодействуют с пользователем системы.

Чтобы включить пользователя системы без головы, производители устройств должны включить многопользовательский режим, как описано выше.

Когда включен безголовый пользователь:
  1. Для того, чтобы объявить устройство , чтобы быть Automotive, добавить функцию android.hardware.type.automotive .
  2. Набор ro.fw.headless_system_user к true .
  3. Установите значение config_multiuserMaximumUsers на 2 (или выше).

Для получения дополнительной информации см Поддержка нескольких пользователей в автомобильной промышленности.