Что в Android 9 для корпоративных приложений

На этой странице представлен обзор корпоративных API, функций и изменений поведения, доступных в Android 9.

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

Android 9 (уровень API 28) включает изменения пользовательского интерфейса в средстве запуска по умолчанию, чтобы помочь пользователям разделить личные и рабочие приложения. Производители устройств, поддерживающие эту возможность, могут представлять приложения пользователей на отдельных рабочих и личных вкладках. Мы также упростили для пользователей устройств включение и выключение рабочего профиля, добавив переключатель на вкладку «Работа» средства запуска.

Рис. 1. Личная вкладка и рабочая вкладка панели запуска по умолчанию с переключателем рабочего профиля.

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

Переключение приложений между профилями

Android 9 включает API для запуска другого экземпляра приложения в другом профиле, чтобы помочь пользователям переключаться между учетными записями. Например, приложение электронной почты может предоставлять пользовательский интерфейс, который позволяет пользователю переключаться между личным профилем и рабочим профилем для доступа к двум учетным записям электронной почты. Все приложения могут вызывать эти API для запуска основного действия того же приложения, если оно уже установлено в другом профиле. Чтобы добавить переключение между учетными записями в ваше приложение, выполните следующие действия, вызвав методы класса CrossProfileApps :

  1. Вызовите getTargetUserProfiles() , чтобы получить список профилей, в которых вы можете запустить другой экземпляр приложения. Этот метод проверяет, установлено ли приложение в профилях.
  2. Вызовите getProfileSwitchingIconDrawable() , чтобы получить значок, который можно использовать для представления другого профиля.
  3. Вызовите getProfileSwitchingLabel() , чтобы получить локализованный текст, предлагающий пользователю переключить профили.
  4. Вызовите startMainActivity() , чтобы запустить экземпляр вашего приложения в другом профиле.

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

Программное включение и отключение рабочих профилей

Средство запуска по умолчанию (или приложения, имеющие разрешение MANAGE_USERS или MODIFY_QUIET_MODE ) может включать или выключать рабочий профиль, вызывая UserManager.requestQuietModeEnabled() . Вы можете проверить возвращаемое значение, чтобы узнать, нужно ли пользователю подтверждать свои учетные данные перед изменением состояния. Поскольку изменение может произойти не сразу, прослушайте широковещательную рассылку ACTION_MANAGED_PROFILE_AVAILABLE или ACTION_MANAGED_PROFILE_UNAVAILABLE , чтобы узнать, когда следует обновить пользовательский интерфейс.

Ваше приложение может проверить состояние рабочего профиля, вызвав UserManager.isQuietModeEnabled() .

Заблокируйте любое приложение на устройстве

Начиная с Android 9, владельцы устройств и владельцы профилей (дополнительных пользователей) могут заблокировать любое приложение на экране устройства, переведя его в режим блокировки задач. Раньше разработчикам приложений приходилось добавлять в свои приложения поддержку режима блокировки задач . Android 9 также расширяет API-интерфейсы задач блокировки для владельцев профилей неаффилированных вторичных пользователей. Выполните следующие действия, чтобы заблокировать приложение на экране:

  1. Вызовите DevicePolicyManager.setLockTaskPackages() чтобы добавить приложения в список разрешенных для режима блокировки задач.
  2. Вызовите ActivityOptions.setLockTaskEnabled() , чтобы запустить приложение из белого списка в режиме задачи блокировки.

Чтобы остановить приложение в режиме блокировки задач, удалите приложение из белого списка режима блокировки задач с помощью DevicePolicyManager.setLockTaskPackages() .

Включить функции системного пользовательского интерфейса

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

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

Подавить диалоговые окна ошибок

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

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

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

В Android 9 представлена ​​концепция временного пользователя для выделенных устройств (ранее называвшихся устройствами COSU ). Эфемерные пользователи — это краткосрочные пользователи, предназначенные для случаев, когда несколько пользователей используют одно выделенное устройство. Сюда входят общедоступные сеансы пользователей на таких устройствах, как библиотеки или киоски регистрации в гостиницах, а также постоянные сеансы между фиксированным набором пользователей на устройствах, например, сменными работниками.

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

  1. Установите флаг MAKE_USER_EPHEMERAL при вызове DevicePolicyManager.createAndManageUser() .
  2. Вызовите DevicePolicyManager.startUserInBackground() чтобы запустить эфемерного пользователя в фоновом режиме.

Обратите внимание, что приложения, предназначенные для Android 9, должны перехватывать UserManager.UserOperationException при вызове createAndManageUser() . Вызовите метод getUserOperationResult() исключения, чтобы выяснить, почему пользователь не был создан.

Получать уведомления о событиях

DeviceAdminReceiver получает уведомления о следующих событиях:

Отображение сообщений о событиях для пользователей

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

Выйти и остановить пользователей

Владельцы устройств могут использовать DevicePolicyManager.setLogoutEnabled() чтобы указать, разрешен ли выход из системы для дополнительных пользователей. Чтобы проверить, включен ли выход из системы, вызовите DevicePolicyManager.isLogoutEnabled() .

Владельцы профилей дополнительных пользователей могут вызвать DevicePolicyManager.logoutUser() чтобы остановить вторичного пользователя и переключиться обратно на основного пользователя.

Владельцы устройств могут использовать DevicePolicyManager.stopUser() чтобы остановить указанного вторичного пользователя.

Кэширование пакетов

Чтобы упростить подготовку пользователей на общих устройствах с фиксированным набором пользователей, например устройствах для посменных работников, можно кэшировать пакеты, необходимые для многопользовательских сеансов:

  1. Вызовите DevicePolicyManager.setKeepUninstalledPackages() , чтобы указать список пакетов, которые нужно сохранить в виде APK. Чтобы получить список этих пакетов, вызовите DevicePolicyManager.getKeepUninstalledPackages() .

  2. Вызовите DevicePolicyManager.installExistingPackage() , чтобы установить пакет, который был сохранен после удаления с помощью setKeepUninstalledPackages() .

Дополнительные методы и константы

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

Очистить данные пакета и удалить учетные записи

Владельцы устройств и владельцы профилей могут вызвать clearApplicationUserData() чтобы очистить данные пользователя для данного пакета. Чтобы удалить учетную запись из AccountManager , владельцы устройств и профилей могут вызвать removeAccount() .

Пользовательские ограничения и повышенный контроль над настройками

В Android 9 представлен набор пользовательских ограничений для ЦОД, а также возможность настраивать APN, время и часовой пояс, а также системные настройки на устройстве.

Настройка APN

Владельцы устройств могут использовать следующие методы класса DevicePolicyManager для настройки APN на устройстве:

Настройте время и часовой пояс

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

Ввести ограничения пользователей на важные настройки

В Android 9 добавлены пользовательские ограничения на отключение системных функций и настроек. Чтобы добавить ограничение, вызовите DevicePolicyManager.addUserRestriction() с одной из следующих констант UserManager :

Если на устройстве принудительно применяются DISALLOW_CONFIG_BRIGHTNESS и DISALLOW_CONFIG_SCREEN_TIMEOUT , владельцы устройств по-прежнему могут устанавливать яркость экрана , режим яркости экрана и параметры тайм-аута экрана на устройстве с помощью API DevicePolicyManager.setSystemSetting() .

Измеренные данные

Владельцы устройств и владельцы профилей могут запретить приложениям использовать сети с лимитной передачей данных устройства. Сеть считается лимитированной, если пользователь чувствителен к интенсивному использованию данных из-за стоимости, ограничений данных или проблем с батареей и производительностью. Чтобы запретить приложениям использовать сети с лимитным трафиком, вызовите DevicePolicyManager.setMeteredDataDisabledPackages() , передав список имен пакетов. Чтобы получить приложения, доступ к которым в настоящее время ограничен, вызовите DevicePolicyManager.getMeteredDataDisabledPackages() .

Чтобы узнать больше об измеренных данных в Android, прочтите «Оптимизация использования сетевых данных» .

Миграция ЦОД

Контроллеры политики устройств (DPC) могут передавать право собственности на устройство или рабочий профиль другому DPC. Вы можете передать право собственности, чтобы перенести некоторые функции в Android Management API , перенести устройства из устаревшего ЦОД или помочь ИТ-администраторам перейти на ваш EMM. Поскольку вы просто меняете владельца ЦОД, вы не можете использовать эту функцию для изменения типа управления, например для перехода с управляемого устройства на рабочий профиль или наоборот.

Вы можете использовать XML-ресурс политик администратора устройства, чтобы указать, что эта версия вашего ЦОД поддерживает миграцию. Целевой ЦОД указывает, что он может получить право собственности, включив элемент с именем <support-transfer-ownership> . В приведенном ниже примере показано, как это можно сделать в XML-файле администратора устройства вашего ЦОД:

<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
    <support-transfer-ownership />
    <uses-policies>
        <limit-password />
        <watch-login />
        <reset-password />
    </uses-policies>
</device-admin>

ЦОД, которые хотят перенести владение в новое приложение ЦОД, могут проверить, поддерживает ли версия целевого ЦОД миграцию, вызвав метод DeviceAdminInfo supportsTransferOwnership() . Перед передачей владения исходный ЦОД обязан проверить целевой ЦОД путем сравнения подписей приложений. Класс PackageManager включает методы для работы с подписями кода.

Android поддерживает системные и пользовательские политики исходного ЦОД посредством передачи права собственности — ЦОДам не нужно их переносить. Исходный ЦОД может передавать пользовательские данные в целевой ЦОД, используя пары ключ-значение в PersistableBundle . После успешной передачи целевой ЦОД может получить эти данные, вызвав DevicePolicyManager.getTransferOwnershipBundle() .

Действия по передаче права собственности на управляемое устройство или рабочий профиль такие же:

  1. Исходный центр обработки данных проверяет, поддерживает ли версия целевого центра обработки данных миграцию, и подтверждает, что подпись приложения целевого центра обработки данных соответствует ожидаемому значению.
  2. Исходный ЦОД вызывает transferOwnership() чтобы начать передачу.
  3. Система делает целевой ЦОД активным администратором и назначает его владельцем управляемого устройства или рабочего профиля.
  4. Целевой ЦОД получает обратный вызов onTransferOwnershipComplete() и может настроить себя, используя значения из аргумента bundle .
  5. Если при передаче что-то пойдет не так, система возвращает право собственности исходному ЦОД. Если вашему исходному ЦОД необходимо подтвердить успешную передачу владения, вызовите isAdminActive() чтобы убедиться, что исходный ЦОД больше не является активным администратором.

Все приложения, работающие в рабочем профиле, получают широковещательную рассылку ACTION_PROFILE_OWNER_CHANGED при смене владельца профиля. Приложения, работающие на управляемом устройстве, получают широковещательную рассылку ACTION_DEVICE_OWNER_CHANGED при смене владельца устройства.

Рабочие профили на полностью управляемых устройствах

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

  1. Сначала передайте право собственности на рабочий профиль.
  2. Подождите, пока обратный вызов DeviceAdminReceiver onTransferAffiliatedProfileOwnershipComplete() подтвердит, что рабочий профиль был передан в целевой ЦОД.
  3. Наконец, передайте право владения управляемым устройством целевому ЦОД.

Отложить обновления по беспроводной сети (OTA)

Владельцы устройств могут отложить обновления системы OTA для устройств на срок до 90 дней, чтобы заморозить версию ОС, работающую на этих устройствах, в критические периоды (например, праздники). Система обеспечивает обязательный 60-дневный буфер после любого определенного периода заморозки, чтобы предотвратить заморозку устройства на неопределенный срок.

В период заморозки:

  • Устройства не получают никаких уведомлений об ожидающих обновлениях OTA.
  • Устройства не устанавливают никаких OTA-обновлений в ОС.
  • Пользователи устройств не могут вручную проверять наличие обновлений OTA в настройках.

Чтобы установить период заморозки, вызовите SystemUpdatePolicy.setFreezePeriods() . Поскольку период замораживания повторяется ежегодно, даты начала и окончания периода представлены целыми числами, подсчитывающими количество дней с начала года. День начала должен начаться как минимум через 60 дней после окончания любого предыдущего периода заморозки. Владельцы устройств могут вызвать SystemUpdatePolicy.getFreezePeriods() чтобы получить список периодов заморозки, ранее установленных для объекта политики обновления системы. DevicePolicyManager.getSystemUpdatePolicy() был обновлен и теперь возвращает любые периоды заморозки, установленные владельцем устройства.

Ограничить общий доступ рабочим профилем

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

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

После установки этого ограничения ваш ЦОД по-прежнему может разрешать намерения межпрофильного действия, вызывая addCrossProfileIntentFilter() .

Аппаратно защищенные ключи и сертификаты машины

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

  • Создавайте ключи и сертификаты на защищенном оборудовании (например, в доверенной среде выполнения (TEE) или элементе безопасности (SE)) устройства Android. Сгенерированные ключи никогда не покидают защищенное оборудование и могут использоваться из Android KeyChain . Вызовите DevicePolicyManager.generateKeyPair() предоставив алгоритм (см. KeyPairGenerator ) и любые идентификаторы оборудования, которые вы хотите подтвердить, например серийный номер или IMEI. Дополнительные сведения о безопасных изменениях оборудования см. в разделе «Усовершенствования безопасности Android 9» .
  • Свяжите сертификат с существующим ключом, созданным устройством. Вызовите DevicePolicyManager.setKeyPairCertificate() указав псевдоним существующего ключа и цепочку сертификатов, начиная с конечного сертификата и включая цепочку доверия по порядку.
  • Прежде чем использовать ключ, убедитесь, что защищенное оборудование защищает ключ. Чтобы проверить, какие механизмы защищают ключ, выполните действия, описанные в разделе «Аттестация ключа» .
  • Владельцы устройств и установщики делегированных сертификатов могут получить подписанный отчет с идентификаторами оборудования устройств с версиями системы Android. Вызовите DevicePolicyManager.generateKeyPair() , передав один или несколько ID_TYPE_BASE_INFO , ID_TYPE_SERIAL , ID_TYPE_IMEI или ID_TYPE_MEID в аргументе idAttestationFlags . Возвращенный сертификат включает идентификаторы оборудования в записи подтверждения. Если вы не хотите включать идентификаторы оборудования, передайте 0 . Владельцы профилей могут получать только информацию о производителе (передавая ID_TYPE_BASE_INFO ). Чтобы проверить, что устройство может подтвердить идентификаторы, вызовите isDeviceIdAttestationSupported() .
  • Предотвратите неправильное использование пользователями устройств корпоративных ключей (в некорпоративных задачах), сделав сертификаты ключей недоступными для выбора. Система не включает невыбираемые сертификаты на панели выбора. В методе обратного вызова DeviceAdminReceiver.onChoosePrivateKeyAlias() верните псевдоним вашего корпоративного ключа, чтобы система автоматически выбирала сертификат от имени пользователя. Чтобы сделать ключ недоступным для выбора, вызовите следующие методы DevicePolicyManager :

Комбинируя эти API, предприятия могут безопасно идентифицировать устройства и подтверждать их целостность перед предоставлением доступа:

  1. Устройство Android генерирует новый закрытый ключ на защищенном оборудовании. Поскольку закрытый ключ никогда не покидает защищенное оборудование, он остается секретным.
  2. Устройство использует ключ для создания и отправки запроса на подпись сертификата (CSR) на сервер. CSR включает запись подтверждения, содержащую идентификаторы устройств.
  3. Сервер проверяет цепочку сертификатов (основанную на сертификате Google) и извлекает метаданные устройства из записи аттестации.
  4. Сервер подтверждает, что защищенное оборудование защищает закрытый ключ и что идентификаторы устройств соответствуют записям предприятия. Сервер также может проверить соответствие системы Android и версий исправлений любым требованиям.
  5. Сервер генерирует сертификат из CSR и отправляет его на устройство.
  6. Устройство связывает сертификат с закрытым ключом (который остается на защищенном оборудовании), позволяя приложениям подключаться к корпоративным службам.

Больше API-интерфейсов безопасности, функций и изменений

Идентификаторы журналов безопасности и сетевых журналов

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

Вызовите SecurityEvent.getId() , DnsEvent.getId() или ConnectEvent.getId() , чтобы получить значение идентификатора. Система сбрасывает идентификатор всякий раз, когда ЦОД включает ведение журнала или когда устройство перезагружается. Журналы безопасности, полученные с помощью вызова DevicePolicyManager.retrievePreRebootSecurityLogs() не включают эти идентификаторы.

Журналирование безопасности

Ведение журнала безопасности назначает каждому SecurityEvent уровень журнала. Чтобы получить уровень журнала, вызовите getLogLevel() . Этот метод возвращает значение уровня журнала, которое может быть одним из: LEVEL_INFO , LEVEL_WARNING или LEVEL_ERROR .

Android 9 записывает события, перечисленные в таблице ниже, в журналы безопасности . Чтобы проверить тег события, вызовите getTag() . Чтобы получить данные о событии, вызовите getData() .

Ярлык Описание события
TAG_CERT_AUTHORITY_INSTALLED Попытка установить новый корневой сертификат в хранилище учетных данных системы.
TAG_CERT_AUTHORITY_REMOVED Попытка удалить корневой сертификат из хранилища учетных данных системы.
TAG_CERT_VALIDATION_FAILURE Сертификат Wi-Fi не прошел проверку во время подключения.
TAG_CRYPTO_SELF_TEST_COMPLETED Система завершила криптографическое самотестирование.
TAG_KEYGUARD_DISABLED_FEATURES_SET Приложение администратора отключило функции экрана блокировки устройства или рабочего профиля.
TAG_KEY_DESTRUCTION Попытка удалить криптографический ключ.
TAG_KEY_GENERATED Попытка сгенерировать новый криптографический ключ.
TAG_KEY_IMPORT Попытка импортировать новый криптографический ключ.
TAG_KEY_INTEGRITY_VIOLATION Android обнаружил поврежденный ключ шифрования или аутентификации.
TAG_LOGGING_STARTED В журнале безопасности началась запись.
TAG_LOGGING_STOPPED Журнал безопасности прекратил запись.
TAG_LOG_BUFFER_SIZE_CRITICAL Буфер журнала безопасности достиг 90% своей емкости.
TAG_MAX_PASSWORD_ATTEMPTS_SET Приложение администратора устанавливает количество разрешенных попыток ввода неправильного пароля.
TAG_MAX_SCREEN_LOCK_TIMEOUT_SET Приложение администратора установило максимальное время ожидания блокировки экрана.
TAG_MEDIA_MOUNT В устройстве установлены съемные носители информации.
TAG_MEDIA_UNMOUNT Устройство отключило съемный носитель.
TAG_OS_SHUTDOWN Система Android выключилась.
TAG_OS_STARTUP Система Android запустилась.
TAG_PASSWORD_COMPLEXITY_SET Приложение администратора устанавливает требования к сложности пароля.
TAG_PASSWORD_EXPIRATION_SET Приложение администратора установило срок действия пароля.
TAG_PASSWORD_HISTORY_LENGTH_SET Приложение администратора устанавливает длину истории паролей, не позволяя пользователям повторно использовать старые пароли.
TAG_REMOTE_LOCK Приложение администратора заблокировало устройство или рабочий профиль.
TAG_USER_RESTRICTION_ADDED Приложение администратора установило ограничение пользователя.
TAG_USER_RESTRICTION_REMOVED Приложение администратора сняло ограничение пользователя.
TAG_WIPE_FAILURE Попытка стереть устройство или рабочий профиль не удалась.

Задача блокировки экрана рабочего профиля

Начиная с Android 9, владельцы профилей могут потребовать от пользователей установить отдельный вызов экрана блокировки для своего рабочего профиля, используя пользовательское ограничение DISALLOW_UNIFIED_PASSWORD . Чтобы проверить, имеет ли пользователь один и тот же вызов экрана блокировки для своего устройства и рабочего профиля, вызовите DevicePolicyManager.isUsingUnifiedPassword() .

Если устройство имеет отдельный экран блокировки рабочего профиля, DevicePolicyManager.setMaximumTimeToLock() устанавливает время ожидания экрана блокировки только для рабочего профиля, а не для всего устройства.

Доступ к инструментам разработчика

Чтобы сохранить рабочие данные в рабочем профиле, инструмент Android Debug Bridge (adb) не имеет доступа к каталогам и файлам в рабочем профиле.

Поддержка большего количества биометрических опций

В Android 9 добавлен детальный контроль над биометрической аппаратной аутентификацией на экране блокировки рабочего профиля. Вызовите существующий метод DevicePolicyManager.setKeyguardDisabledFeatures() с помощью KEYGUARD_DISABLE_FACE и KEYGUARD_DISABLE_IRIS . Чтобы отключить все методы биометрической аутентификации, предоставляемые устройством, добавьте KEYGUARD_DISABLE_BIOMETRICS .

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

Android 9 помечает перечисленные ниже политики как устаревшие для ЦОД с помощью администратора устройства . Политики продолжают работать в Android 9, как и раньше. Начиная с версии Android 10, те же политики будут вызывать исключение SecurityException при вызове администратором устройства.

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

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

Упрощенная регистрация QR-кода

Встроенная QR-библиотека.

Android 9 поставляется в комплекте с библиотекой QR для оптимизации подготовки устройств с QR-кодом. ИТ-администраторам больше не нужно вручную вводить данные Wi-Fi для настройки устройства. Вместо этого в Android 9 можно включить эти данные Wi-Fi в QR-код. Когда ИТ-администратор сканирует QR-код на принадлежащем компании устройстве, устройство автоматически подключается к Wi-Fi и вступает в процесс подготовки без какого-либо дополнительного ручного ввода.

Метод предоставления QR-кода поддерживает следующие дополнительные возможности для указания сведений о Wi-Fi:

Установите дату и часовой пояс с помощью дополнительных возможностей подготовки

Метод предоставления QR-кода поддерживает дополнительные возможности для установки времени и часового пояса на устройстве:

Параметры очистки данных

Администраторы устройств могут показывать пользователям персонализированное сообщение при удалении рабочего профиля или дополнительного пользователя. Сообщение помогает пользователям устройств понять, что их ИТ-администратор удалил рабочий профиль или дополнительного пользователя. Вызовите wipeData(int, CharSequence) и предоставьте короткое поясняющее сообщение. При вызове основного пользователя или владельца устройства система не отображает сообщение и начинает сброс настроек устройства.

Чтобы удалить данные о подписке со встроенной SIM-карты eUICC, вызовите wipeData() и включите WIPE_EUICC в аргумент flags .

Методы для владельцев аффилированных профилей

Владельцам аффилированных профилей доступны следующие методы: