Android 11부터 Android 멀티 사용자 기능에서 허용되는 모든 유형의 사용자를 나타내는 잘 정의된 사용자 유형이라는 개념이 도입되었습니다. OEM은 이 기능을 사용하여 사전 정의된 AOSP 사용자 유형을 맞춤설정하고 새로운 프로필 유형을 정의할 수 있습니다. 자세한 내용은 사용자 유형 섹션을 참조하세요.
이 페이지에서는 사용자 유형을 맞춤설정하는 데 필요한 구현 가이드라인을 자세히 설명합니다.
맞춤설정
AOSP 사용자 유형을 맞춤설정하고 새로운 프로필 유형을 정의하려면 OEM이 config_user_types.xml
을 원하는 맞춤설정으로 오버레이해야 합니다. config_user_types.xml
파일에는 구성 가능 속성의 포괄적인 목록과 참조 구현이 있습니다.
config_user_types.xml
파일에 지정된 모든 속성(예: default-restrictions
)은 AOSP 기본값을 덮어씁니다. 지정되지 않은 모든 속성은 AOSP 기본값을 따릅니다. 프로필 유형의 배지 속성 등 대부분의 속성은 변경하면 이 사용자 유형의 기존 사용자에게 영향을 미칩니다.
단, default-restrictions
는 사용자가 생성된 시점에만 적용되므로, OTA가 config_user_types.xml
파일을 변경한 경우 이 속성을 수정해도 기존 사용자에게 영향을 미치지 않습니다. 마찬가지로, 최대 사용자 수를 지정하는 것은 신규 사용자 생성 시에만 적용되며, 기존 사용자는 삭제되지 않습니다.
현재 각 사용자 유형에 적용되는 맞춤설정 제한사항은 다음과 같습니다.
- 프로필은 완전히 맞춤설정 및 정의할 수 있습니다. 이 경우 AOSP는 사전 정의된 AOSP 사용자 유형만 지원하므로 OEM은 Android에서 맞춤 프로필이 지원되도록 하는 데 필요한 플랫폼 수정을 적용해야 합니다.
- 전체 사용자는 정의할 수 없으며
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
의 기본 제한사항은default-restrictions no_sms="true"
를 지정하여 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
의 기본 제한사항은default-restrictions no_sms="true" no_outgoing_calls="true"
를 지정하여 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
: OTA를 통해<= 1
인user-type
버전에서 기기를 업그레이드할 때 유형이android.os.usertype.profile.MANAGED
인 모든 기존 관리형 프로필을 새로운com.example.profilename
유형으로 변환합니다.