Использование рабочих профилей

Рабочий профиль — это пользователь Android с дополнительными специальными свойствами, связанными с управлением и визуальной эстетикой. Основная цель рабочего профиля — создать отдельное и безопасное пространство для хранения управляемых данных (например, корпоративных данных). Администратор профиля имеет полный контроль над объемом, входом, выходом и временем жизни данных. Эти политики обладают большими возможностями и поэтому ложатся на рабочий профиль, а не на администратора устройства.

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

  • Управление. Приложения, известные как владельцы профилей, могут программно вызывать API в классе DevicePolicyManager для ограничения использования. Владельцы профиля определяются при первоначальной настройке профиля. Политики, уникальные для рабочих профилей, включают ограничения приложений, возможность обновления и поведение намерений.

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

Разделение данных

В рабочих профилях используются следующие правила разделения данных.

Программы

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

Счета

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

Намерения

Администратор контролирует, разрешаются ли намерения в рабочем профиле или вне его. По умолчанию приложения из рабочего профиля ограничены рамками рабочего профиля, за исключением Device Policy API.

Идентификаторы устройств

На личных устройствах с рабочим профилем Android 12 или более поздней версии удаляет доступ к аппаратным идентификаторам устройства (IMEI, MEID, серийный номер) и предоставляет уникальный идентификатор регистрации, который идентифицирует регистрацию рабочего профиля для конкретной организации. Идентификатор регистрации гарантированно останется стабильным после сброса настроек, что обеспечивает надежное отслеживание инвентаризации устройств с рабочими профилями.

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

Настройки

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

Рабочие профили реализованы как вторичный пользователь, так что uid = 100000 \* userid + appid . Эти профили имеют отдельные данные приложения ( /data/user/ userid ), как и обычные пользователи. Идентификатор userid вычисляется для всех системных запросов с помощью Binder.getCallingUid() , а все состояния системы и ответы разделяются значением userid .

Служба AccountManagerService поддерживает отдельный список учетных записей для каждого пользователя. Различия в учетных записях между пользователем рабочего профиля и обычным дополнительным пользователем включают следующее:

  • Рабочий профиль связан со своим родительским пользователем и запускается с основным пользователем во время загрузки.

  • Уведомления для рабочих профилей включаются ActivityManagerService , что позволяет рабочему профилю совместно использовать стек действий с основным пользователем.

  • Дополнительные общие системные службы включают службы IME, A11Y, Wi-Fi и NFC.

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

Управление устройствами

Управление корпоративными устройствами Android включает следующих владельцев:

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

Некоторые API управления устройствами используются для потребителей (например, API поиска моего устройства), в то время как другие API доступны только владельцам профилей или устройств.

Владельцы профиля

Приложение Device Policy Client (DPC) действует как владелец профиля и обычно предоставляется партнером по управлению мобильностью предприятия (EMM), например Google Apps Device Policy. Приложение владельца профиля создает рабочий профиль на устройстве, отправляя намерение ACTION_PROVISION_MANAGED_PROFILE . В рабочем профиле отмечены экземпляры приложений, которые визуально отличаются от личных экземпляров приложений; значок идентифицирует приложение как рабочее. EMM контролирует только рабочий профиль, а не личное пространство (за некоторыми исключениями, такими как блокировка экрана).

Владельцы устройств

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

  • Стирание данных устройства.
  • Отключение Wi-Fi или Bluetooth.
  • Установка значения setGlobalSetting .
  • Установка значения setLockTaskPackages , которое позволяет добавлять в белый список пакеты, которые могут закрепляться на переднем плане.
  • Установка значения DISALLOW_MOUNT_PHYSICAL_MEDIA , которое по умолчанию равно FALSE ; если установлено значение TRUE , переносные и пригодные для использования физические носители не могут быть смонтированы).

API DevicePolicyManager

Android 5.0 или более поздней версии предлагает улучшенный DevicePolicyManager с API-интерфейсами, которые поддерживают сценарии использования управления корпоративными и собственными устройствами (BYOD), включая ограничение приложений, автоматическую установку сертификатов и управление доступом к намерению общего доступа между профилями. Для начала используйте образец приложения Device Policy Client (DPC) BasicManagedProfile.apk . Дополнительные сведения см. в статье Создание контроллера политики устройства .

Пользовательский интерфейс рабочего профиля

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

Устройства с панелью приложений

В Android 9 или более поздней версии изменения пользовательского интерфейса рабочего профиля для Launcher3 помогают пользователям поддерживать отдельные личные и рабочие профили. Панель приложений представляет собой представление с вкладками, позволяющее различать приложения личного профиля. Когда пользователи впервые просматривают вкладку рабочего профиля, им предоставляется образовательное представление, которое помогает им перемещаться по рабочему профилю. Они также могут включать и выключать рабочий профиль с помощью переключателя на вкладке «Работа» программы запуска.

Представления профиля с вкладками

В Android 9 или более поздней версии рабочий профиль позволяет пользователям переключаться между личными и управляемыми списками приложений в панели приложений. Представления приложения разделены на два отдельных RecyclerViews , управляемых ViewPager . Пользователи могут переключаться между различными представлениями профиля с помощью вкладок профиля в верхней части панели приложения, как показано ниже:


Рис. 1. Представление вкладки «Личные»

Рис. 2. Вид вкладки «Работа», переключатель рабочего профиля

Представление с вкладками реализовано как часть класса AllAppsContainerView Launcher3. Для эталонной реализации индикатора профиля с вкладками обратитесь к классу PersonalWorkSlidingTabStrip .

Образовательный вид

Android 9 или более поздней версии поддерживает образовательное представление, которое информирует пользователей о назначении рабочей вкладки и о том, как они могут упростить доступ к рабочим приложениям. Используя Launcher3, вы можете отображать образовательное представление в нижней части экрана рабочей вкладки, когда пользователи впервые открывают рабочую вкладку, как показано ниже:

Образовательный вид

Рисунок 3. Образовательный вид

Образовательное представление определяется классом BottomUserEducationView с макетом, управляемым work_tab_tottom_user_education_view.xml . В BottomUserEducationView для логического KEY_SHOWED_BOTTOM_USER_EDUCATION по умолчанию установлено значение false . Когда пользователь закрывает образовательное представление, для логического значения устанавливается значение true .

Переключите, чтобы включить или отключить рабочие профили

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

Устройства без области приложений

Для программ запуска без панели приложений продолжайте размещать ярлыки приложений рабочего профиля в рабочей папке. Если рабочая папка не заполняется правильно и новые установленные приложения не добавляются в папку, примените следующее изменение в методе onAllAppsLoaded в классе ManagedProfileHeuristic :

for (LauncherActivityInfo app : apps) {
        // Queue all items which should go in the work folder.
        if (app.getFirstInstallTime() < Long.MAX\_VALUE) {
                InstallShortcutReceiver.queueActivityInfo(app, context);
        }
}

Проверка изменений UX

Чтобы протестировать реализацию UX рабочего профиля с помощью приложения TestDPC:

  1. На устройстве установите приложение TestDPC из магазина Google Play.

  2. Откройте панель запуска или панель приложений и выберите «Настроить TestDPC» .

  3. Следуйте инструкциям на экране, чтобы настроить рабочий профиль.


    Рисунок 4. Настройка рабочего профиля


    Рисунок 5. Добавление учетных записей


    Рисунок 6. Настройка завершена

  4. Откройте панель запуска или панель приложений и убедитесь, что рабочая вкладка присутствует и содержит нижний колонтитул рабочего профиля.

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


    Рис. 7. Включение, рабочий профиль включен

    Рис. 8. Выключить, рабочий профиль отключен

Значок приложения рабочего профиля

В Android 9 или более поздней версии из соображений доступности цвет рабочего значка — синий (#1A73E8) вместо оранжевого.