다음 Android 호환성 정의 문서(CDD)는 개발 중입니다. CDD의 최신 버전은 Android 호환성 정의 문서를 참고하세요.
2. 기기 유형
2.2. 휴대기기 요구사항
2.2.1. 하드웨어
휴대기기 구현이 모바일 데이터 연결을 지원하는 경우 다음을 충족해야 합니다.
- [7.4.1/H-1-1]
android.hardware.telephony.data기능을 선언해야 합니다(MUST).
2.2.3. 소프트웨어
앱이 모든 프로모션 특성을 충족하는 경우 앱의 실시간 업데이트 알림을 프로모션할 수 있습니다. 이러한 알림은 이 문서에서 프로모션 실시간 업데이트 알림이라고 설명합니다. 휴대기기 구현은 다음 요구사항에 따라 프로모션 실시간 업데이트 알림을 눈에 띄게 표시해야 합니다(MUST). 휴대기기 구현은 다음을 충족해야 합니다.
[3.8.3.1/H-0-1] 잠금 화면의 눈에 띄는 위치에 프로모션 실시간 업데이트 알림을 표시해야 합니다(MUST).
[3.8.3.1/H-0-12] 프로모션 실시간 업데이트 알림이 다른 알림 사이에 표시될 때 알림 스택의 상단에 헤드업 알림을 표시하거나 색상이 지정된 알림 위에 표시해야 합니다(
setColorized가true인 경우)(MUST).- 하나 이상의 앱이 프로모션 실시간 업데이트 알림을 받을 수 있는 경우 알림 창과 잠금 화면에 표시되는 프로모션 실시간 업데이트 알림의 순서를 결정할 수 있습니다(MAY).
[3.8.3.1/H-0-2] 펼쳐진 상태로 프로모션 실시간 업데이트 알림을 표시해야 합니다(MUST).
[3.8.3.1/H-0-3] 위의 펼쳐진 알림을 접는 사용자 어포던스를 제공하면 안 됩니다(MUST NOT).
[3.8.3.1/H-0-4]
StyleSpan또는UnderlineSpan에서 제공하는 대로 프로모션 실시간 업데이트 알림에 텍스트 콘텐츠의 기본 스타일(굵게, 기울임꼴, 밑줄)을 표시해야 합니다(MUST).[3.8.3.1/H-0-5] 프로모션 실시간 업데이트 알림에 표준 작업 객체(
Notification.Action을 통해)만 표시해야 하고(MUST) 알림에 포함되어 있더라도 입력 상자, 답장 버튼, 상황별 작업(addRemoteInput()및setContextual()을 통해)과 같은 비표준 작업 객체는 숨겨야 합니다(MUST).[3.8.3.1/H-0-6]
Notification.getSmallIcon()을 포함해야 하는(MUST) 프로모션 실시간 업데이트 알림에 대해 SDK 문서에서 상태 칩이라고도 하는 간결한 표현을 표시해야 합니다(MUST).[3.8.3.1/H-0-7] 다른 필드는 간결한 표현에 선택사항이지만 간결한 표현을 펼칠 수 있는 경우
Notification.getShortCriticalText()(있는 경우) 또는Notification.when(Notification.getShortCriticalText가 없는 경우)을 표시해야 합니다(MUST).[3.8.3.1/H-0-8] 프로모션 실시간 업데이트 알림이 두 개 이상 있는 경우 상태 표시줄에 하나 이상을 간결한 표현으로 표시해야 합니다(MUST).
[3.8.3.1/H-0-9] 사용자가 간결한 표현을 탭하면 연결된 알림을 표시하거나(기본) 연결된 앱을 엽니다(
Notification.contentIntent를 통해)(MUST).[3.8.3.1/H-0-13] 알림 창에서 사용할 수 있는 콘텐츠와 동일한 콘텐츠를 모두 연결된 알림에 표시해야 합니다(MUST).
[3.8.3.1/H-0-10] 개별 앱의 알림의 프로모션 표시를 사용 중지하고 사용 설정하는 사용자 어포던스를 제공해야 합니다(MUST).
[3.8.3.1/H-0-11] 프로모션 특성을 충족하지 않거나 부분적으로만 충족하는 프로모션되지 않은 실시간 업데이트 알림을 포함하되 이에 국한되지 않는 모든 실시간 업데이트 알림을 올바르게 렌더링해야 합니다(MUST). 프로모션되지 않은 알림은 프로모션되지 않은 상태로 표시되어야 합니다(MUST).
2.4. 시계 요구사항
2.4.1. 하드웨어
시계 기기 구현이 모바일 데이터 연결을 지원하는 경우 다음을 충족해야 합니다.
- [7.4.1/W-1-1]
android.hardware.telephony.data기능을 선언해야 합니다(MUST).
3. 소프트웨어
3.9. 기기 관리
3.9.2. 관리 프로필 지원
android.software.device_admin 및android.software.managed_users를 선언하는 기기 구현은 다음을 충족해야 합니다.
- [C-1-1]
android.app.admin.DevicePolicyManagerAPI를 통해 관리 프로필을 지원해야 합니다(MUST). - [C-1-2] 하나의 관리 프로필만 생성을 허용해야 합니다(MUST).
- [C-1-3] AOSP 업스트림 직장 배지와 유사한 아이콘 배지를 사용하여 관리 애플리케이션과 위젯, 그리고 '최근 항목 및 알림' 등의 기타 배지가 지정된 UI 요소를 나타내야 합니다(MUST).
- [C-1-4] AOSP 업스트림 작업 배지와 유사한 알림 아이콘을 표시하여 사용자가 관리 프로필 애플리케이션 내에 있음을 나타내야 합니다(MUST).
- [C-1-5] 기기가 절전 모드에서 해제되고(
ACTION_USER_PRESENT) 포그라운드 애플리케이션이 관리 프로필 내에 있는 경우 사용자가 관리 프로필에 있음을 나타내는 토스트 메시지를 표시해야 합니다(MUST). - [C-1-6] 관리 프로필이 존재하는 경우 사용자가 관리 프로필에서 기본 사용자로 또는 그 반대로 인텐트를 전달할 수 있도록 인텐트 '선택기'에 시각적 어포던스를 표시해야 합니다(MUST)(기기 정책 컨트롤러에 의해 사용 설정된 경우).
- [C-1-7] 관리 프로필이 존재하는 경우 기본 사용자 및 관리 프로필 둘 다에 대해 다음과 같은 사용자 어포던스를 노출해야 합니다(MUST).
- 기본 사용자 및 관리 프로필의 배터리, 위치, 모바일 데이터 및 저장소 사용량과 관련된 별도의 계정.
- 기본 사용자 또는 관리 프로필 내에 설치된 VPN 애플리케이션의 독립적 관리.
- 기본 사용자 또는 관리 프로필 내에 설치된 애플리케이션의 독립적 관리.
- 기본 사용자 또는 관리 프로필 내 계정의 독립적 관리.
- [C-1-8] 기기 정책 컨트롤러가 허용하는 경우 사전 설치된 다이얼러, 연락처 및 메시지 앱이 기본 프로필 옆의 관리 프로필(존재하는 경우)에서 발신자 정보를 검색하고 조회할 수 있는지 확인해야 합니다(MUST).
- [C-1-9] 여러 사용자가 사용 설정된 기기에 적용 가능한 모든 보안 요구사항을 충족하는지 확인해야 합니다(MUST)(섹션 9.5 참고). 하지만 관리 프로필은 기본 사용자 외의 또 다른 추가 사용자로 계산되지 않습니다.
- [C-1-10] 포커스가 있고(사용자가 모든 활동 중에 마지막으로 상호작용한 창) 직장 프로필 앱에 속하는
topActivity창에서 스크린샷을 캡처할 때 직장 프로필 저장소에 스크린샷 데이터를 저장해야 합니다(MUST). - [C-1-11] 개인 프로필 데이터가 직장 프로필에 저장되지 않도록 스크린샷을 직장 프로필에 저장할 때는 직장 프로필 애플리케이션 창을 제외하고 다른 모든 화면 콘텐츠는 캡처하면 안 됩니다(MUST NOT).
android.software.device_admin,android.software.managed_users, android.software.secure_lock_screen을 선언하는 기기 구현은 다음을 충족해야 합니다.
[C-2-1] 관리 프로필에서만 실행되는 앱에만 액세스 권한을 부여하려면 다음 요구사항을 충족하는 별도의 잠금 화면을 지정할 수 있는 기능을 지원해야 합니다(MUST).
- 기기 구현이
DevicePolicyManager.ACTION_SET_NEW_PASSWORD인텐트를 적용하고 관리 프로필의 별도 잠금 화면 사용자 인증 정보를 구성하기 위한 인터페이스를 표시해야 합니다(MUST). - 관리 프로필의 잠금 화면 사용자 인증 정보는 Android 오픈소스 프로젝트 사이트에 문서화된 것처럼 상위 프로필과 동일한 사용자 인증 정보 저장소 및 관리 메커니즘을 사용해야 합니다(MUST).
getParentProfileInstance에 의해 반환된DevicePolicyManager인스턴스에 관해 호출되지 않은 이상 DPC 비밀번호 정책이 관리 프로필의 잠금 화면 사용자 인증 정보에만 적용되어야 합니다(MUST).
- 기기 구현이
관리 프로필의 연락처가 사전 설치된 통화 기록, 수신 전화 UI, 진행 중 및 부재중 전화 알림, 연락처 및 메시지 앱에 표시된 경우 관리 프로필 애플리케이션을 나타내는 데 사용되는 동일한 배지로 연락처의 배지를 지정해야 합니다(SHOULD).
3.9.3. 관리 사용자 지원
android.software.device_admin 및android.software.managed_users를 선언하는 기기 구현은 다음을 충족해야 합니다.
- [C-1-1]
isLogoutEnabled가true를 반환할 때 현재 사용자에서 로그아웃하고 멀티 사용자 세션의 기본 사용자로 다시 전환할 수 있도록 사용자 어포던스를 제공해야 합니다(MUST). 사용자 어포던스는 기기를 잠금 해제하지 않은 상태에서 잠금 화면에서 액세스할 수 있어야 합니다(MUST).
7. 하드웨어 호환성
7.4. 데이터 연결
7.4.1. 전화 통신
모바일 데이터 연결을 지원하는 기기 구현은 다음을 충족해야 합니다.
- [C-SR-11]
android.hardware.telephony.data기능을 선언할 것을 적극 권장합니다(STRONGLY RECOMMENDED).
android.hardware.telephony.data을 보고하는 기기는 다음을 충족해야 합니다.
[C-12-1] PDP 컨텍스트, PDN 연결, DN 연결과 같은 동시 모바일 데이터 네트워크 연결을 2개 이상 지원해야 합니다(MUST).
9. 보안 모델 호환성
9.18. 개발자 인증[새 섹션]
기기 구현은 다음을 충족해야 합니다.
- 알려진 개발자로부터 애플리케이션이 시작되었음을 인증하는 개발자 인증자 서비스를 지원할 수 있습니다(MAY).
config.xml에서 config_developerVerificationServiceProviderPackageName를 정의하여 개발자 인증자를 구성하는 기기 구현은 다음을 충족해야 합니다.
- [9.18/C-1-1] 신규 설치와 기존 애플리케이션 업데이트를 모두 포함하는 모든 애플리케이션 패키지 설치에 대해 구성된
android.content.pm.verify.developer.DeveloperVerifierService를 호출해야 합니다(MUST).
기기 구현은 다음을 충족해야 합니다.
config.xml에서config_developerVerificationPolicyDelegatePackageName를 정의하여 활성 정책을 설정하는 위임자를 구성할 수도 있습니다(MAY).
개발자 인증자가 구성된 경우 기기 구현은 다음을 충족해야 합니다.
- [9.18/C-2-1] 개발자 인증자 또는 구성된 위임자만
android.content.pm.PackageInstaller에 정의된 설치 정책을 설정하도록 허용해야 합니다(MUST).
패키지 설치 세션의 일부로 인증자가 호출되는 경우 기기 구현은 다음을 충족해야 합니다.
[9.18/C-3-1] 다음의 경우 애플리케이션 패키지 설치를 방지해야 합니다(MUST).
- 설치 시 개발자 신원 확인에 실패합니다.
- 설치 세션의 개발자 인증 정책이
DEVELOPER_VERIFICATION_POLICY_NONE이외의 값으로 설정됩니다. - 9.18/C-3-2 또는 9.18/C-3-3이 적용되지 않는 경우
[9.18/C-3-2] 다음의 경우 정책 또는 인증 상태와 관계없이 애플리케이션 패키지의 설치를 방해하면 안 됩니다(MUST NOT).
- 패키지는 Android 디버그 브리지(ADB)를 통해 설치됩니다.
- 패키지는 구성된 개발자 인증자 또는 설치 프로그램입니다.
[9.18/C-3-3] 다음 조건을 모두 충족하는 경우 애플리케이션 패키지의 설치를 방해하면 안 됩니다(MUST NOT).
- 정책이
DEVELOPER_VERIFICATION_POLICY_BLOCK_FAIL_WARN또는DEVELOPER_VERIFICATION_POLICY_BLOCK_FAIL_OPEN으로 설정됩니다. - 인증이 완료되지 않은 것으로 보고됩니다.
- 설치 프로그램은
DEVELOPER_VERIFICATION_USER_RESPONSE_INSTALL_ANYWAY를 보고하여 사용자가 설치를 계속하도록 명시적으로 요청했음을 나타냅니다.
- 정책이
관리 기기의 기기 소유자 또는 관리 프로필의 프로필 소유자가 시작한 설치의 정책 또는 인증 상태와 관계없이 애플리케이션 패키지 설치를 허용할 수 있습니다(MAY). 하지만 9.18/C-3-1에 설명된 대로 설치를 방지할 것을 적극 권장합니다(STRONGLY RECOMMENDED).