В Android 11 введена концепция четко определенных типов пользователей, представляющая все различные типы пользователей, разрешенные функцией Android Multi-user. С помощью этой функции OEM-производители могут настраивать предопределенные типы пользователей AOSP и определять новые типы профилей. Для получения дополнительной информации см. раздел о типах пользователей .
На этой странице подробно описаны рекомендации по реализации, необходимые для настройки типов пользователей.
Настройка
Для настройки типов пользователей AOSP и определения новых типов профилей OEM должен наложить config_user_types.xml
на предпочтительные настройки. Файл config_user_types.xml
содержит эталонную реализацию и полный список настраиваемых атрибутов.
Любой атрибут, такой как default-restrictions
, указанный в файле config_user_types.xml
, перезаписывает значение по умолчанию AOSP. Любой атрибут, который не указан, подчиняется значению по умолчанию AOSP. Изменение большинства атрибутов, таких как атрибуты значка типа профиля, влияет на уже существующих пользователей этого типа пользователя. Однако, поскольку default-restrictions
применяются только во время создания пользователя, изменение этого конкретного атрибута, в случае изменения файла config_user_types.xml
OTA, не влияет на уже существующих пользователей. Аналогично, указание максимального количества пользователей применяется только при создании новых пользователей; существующие пользователи не удаляются.
Текущие ограничения по настройке для каждого типа пользователя следующие:
- Профили могут быть полностью настроены и определены. В этом случае OEM-производитель несет ответственность за внесение изменений в платформу, необходимых для поддержки его пользовательского профиля в Android, поскольку AOSP поддерживает только предопределенные типы пользователей AOSP.
- Полноправных пользователей определить нельзя, можно настроить только их атрибуты
default-restrictions
. - Пользователь системы не может быть настроен с помощью этого механизма. В этом случае
default-restrictions
можно задать с помощьюcom.android.internal.R.array.config_defaultFirstUserRestrictions
. Для получения дополнительной информации см.config.xml
.
Изменить существующие типы пользователей
Существующие типы пользователей можно настраивать, переопределяя их атрибуты, как показано в следующем примере кода:
<user-types version="0">
<full-type name="android.os.usertype.full.SECONDARY" >
<default-restrictions no_sms="true" />
</full-type>
<profile-type
name='android.os.usertype.profile.MANAGED'
max-allowed-per-parent='2'
icon-badge='@android:drawable/ic_corp_icon_badge_case'
badge-plain='@android:drawable/ic_corp_badge_case'
badge-no-background='@android:drawable/ic_corp_badge_no_background' >
<badge-labels>
<item res='@android:string/managed_profile_label_badge' />
<item res='@android:string/managed_profile_label_badge_2' />
</badge-labels>
<badge-colors>
<item res='@android:color/profile_badge_1' />
<item res='@android:color/profile_badge_2' />
</badge-colors>
<default-restrictions no_sms="true" no_outgoing_calls="true" />
</profile-type>
</user-types>
В этом примере кода следующие типы пользователей AOSP настраиваются путем изменения поддерживаемых свойств:
Полный пользователь
android.os.usertype.full.SECONDARY
:- Ограничение по умолчанию
no_sms
устанавливается на значение true путем указанияdefault-restrictions no_sms="true"
.
- Ограничение по умолчанию
Профиль пользователя
android.os.usertype.profile.MANAGED
:- Для каждого родительского пользователя разрешено иметь два профиля, если задано
max-allowed-per-parent='2'
. - Атрибутам значка задаются выбранные значения с помощью
icon-badge
,badge-plain
,badge-no-background
,badge-labels
,badge-colors
. - Ограничения по умолчанию
no_sms
иno_outgoing_calls
устанавливаются в значение true путем указанияdefault-restrictions no_sms="true" no_outgoing_calls="true"
.
- Для каждого родительского пользователя разрешено иметь два профиля, если задано
Значение и значения по умолчанию этих свойств см. в файлах UserTypeFactory.java
и UserTypeDetails.java
Определите пользовательские типы профилей
В следующем примере кода показано, как определяются новые пользовательские типы профилей:
<user-types version="1">
<profile-type
name="com.example.profilename"
max-allowed-per-parent="2" />
<change-user-type
from="android.os.usertype.profile.MANAGED"
to="com.example.profilename"
whenVersionLeq="1" />
</user-types>
В этом примере кода тип профиля com.example.profilename
определяется следующим образом:
max-allowed-per-parents
установлен на2
для двух профилей на одного родителя-пользователя.change-user-type
: преобразует все существующие управляемые профили типаandroid.os.usertype.profile.MANAGED
в новый типcom.example.profilename
при обновлении устройства с версииuser-type
<= 1
через OTA.
В Android 11 введена концепция четко определенных типов пользователей, представляющая все различные типы пользователей, разрешенные функцией Android Multi-user. С помощью этой функции OEM-производители могут настраивать предопределенные типы пользователей AOSP и определять новые типы профилей. Для получения дополнительной информации см. раздел о типах пользователей .
На этой странице подробно описаны рекомендации по реализации, необходимые для настройки типов пользователей.
Настройка
Для настройки типов пользователей AOSP и определения новых типов профилей OEM должен наложить config_user_types.xml
на предпочтительные настройки. Файл config_user_types.xml
содержит эталонную реализацию и полный список настраиваемых атрибутов.
Любой атрибут, такой как default-restrictions
, указанный в файле config_user_types.xml
, перезаписывает значение по умолчанию AOSP. Любой атрибут, который не указан, подчиняется значению по умолчанию AOSP. Изменение большинства атрибутов, таких как атрибуты значка типа профиля, влияет на уже существующих пользователей этого типа пользователя. Однако, поскольку default-restrictions
применяются только во время создания пользователя, изменение этого конкретного атрибута, в случае изменения файла config_user_types.xml
OTA, не влияет на уже существующих пользователей. Аналогично, указание максимального количества пользователей применяется только при создании новых пользователей; существующие пользователи не удаляются.
Текущие ограничения по настройке для каждого типа пользователя следующие:
- Профили могут быть полностью настроены и определены. В этом случае OEM-производитель несет ответственность за внесение изменений в платформу, необходимых для поддержки его пользовательского профиля в Android, поскольку AOSP поддерживает только предопределенные типы пользователей AOSP.
- Полноправных пользователей определить нельзя, можно настроить только их атрибуты
default-restrictions
. - Пользователь системы не может быть настроен с помощью этого механизма. В этом случае
default-restrictions
можно задать с помощьюcom.android.internal.R.array.config_defaultFirstUserRestrictions
. Для получения дополнительной информации см.config.xml
.
Изменить существующие типы пользователей
Существующие типы пользователей можно настраивать, переопределяя их атрибуты, как показано в следующем примере кода:
<user-types version="0">
<full-type name="android.os.usertype.full.SECONDARY" >
<default-restrictions no_sms="true" />
</full-type>
<profile-type
name='android.os.usertype.profile.MANAGED'
max-allowed-per-parent='2'
icon-badge='@android:drawable/ic_corp_icon_badge_case'
badge-plain='@android:drawable/ic_corp_badge_case'
badge-no-background='@android:drawable/ic_corp_badge_no_background' >
<badge-labels>
<item res='@android:string/managed_profile_label_badge' />
<item res='@android:string/managed_profile_label_badge_2' />
</badge-labels>
<badge-colors>
<item res='@android:color/profile_badge_1' />
<item res='@android:color/profile_badge_2' />
</badge-colors>
<default-restrictions no_sms="true" no_outgoing_calls="true" />
</profile-type>
</user-types>
В этом примере кода следующие типы пользователей AOSP настраиваются путем изменения поддерживаемых свойств:
Полный пользователь
android.os.usertype.full.SECONDARY
:- Ограничение по умолчанию
no_sms
устанавливается на значение true путем указанияdefault-restrictions no_sms="true"
.
- Ограничение по умолчанию
Профиль пользователя
android.os.usertype.profile.MANAGED
:- Для каждого родительского пользователя разрешено иметь два профиля, если задано
max-allowed-per-parent='2'
. - Атрибутам значка задаются выбранные значения с помощью
icon-badge
,badge-plain
,badge-no-background
,badge-labels
,badge-colors
. - Ограничения по умолчанию
no_sms
иno_outgoing_calls
устанавливаются в значение true путем указанияdefault-restrictions no_sms="true" no_outgoing_calls="true"
.
- Для каждого родительского пользователя разрешено иметь два профиля, если задано
Значение и значения по умолчанию этих свойств см. в файлах UserTypeFactory.java
и UserTypeDetails.java
Определите пользовательские типы профилей
В следующем примере кода показано, как определяются новые пользовательские типы профилей:
<user-types version="1">
<profile-type
name="com.example.profilename"
max-allowed-per-parent="2" />
<change-user-type
from="android.os.usertype.profile.MANAGED"
to="com.example.profilename"
whenVersionLeq="1" />
</user-types>
В этом примере кода тип профиля com.example.profilename
определяется следующим образом:
max-allowed-per-parents
установлен на2
для двух профилей на одного родителя-пользователя.change-user-type
: преобразует все существующие управляемые профили типаandroid.os.usertype.profile.MANAGED
в новый типcom.example.profilename
при обновлении устройства с версииuser-type
<= 1
через OTA.