Android 역할

역할은 특정 권한과 연결된 시스템 내의 고유한 이름입니다. 앱은 Android API를 통해, 구체적으로는 RoleManager 클래스의 메서드 호출을 통해 특정 역할을 보유하도록 요청할 수 있습니다.

사용 가능한 역할과 역할에 대한 요구사항을 확인하려면 다음 목록을 참고하세요.

역할 요구사항
ASSISTANT 다음 중 하나 이상의 요구사항을 충족해야 합니다.
  • 앱이 지원을 요청할 때 사용자 컨텍스트 정보(예: 현재 포그라운드 앱의 패키지 이름 및 컨텍스트 정보)를 기반으로 지원 작업을 실행하는 활동이 앱에 포함되어 있습니다.
  • 앱에는 android.permission.BIND_VOICE_INTERACTION 권한으로 관리되는 상시 사용 설정된 음성 상호작용 서비스가 포함되어 있으며, 이 서비스는 음성 인식을 실행하고 활성화된 음성 상호작용 세션을 호스팅할 수 있습니다. 또한 앱에는 서비스가 지원 작업을 처리할 수 있다고 나타내는 명시적 플래그가 있습니다.
BROWSER 다음을 모두 충족해야 합니다.
  • 앱이 암시적 인텐트 요청을 통해 호출할 수 있고 http:// 주소에 대응하는 웹페이지를 표시하는 활동이 앱에 포함되어 있습니다.
  • 앱은 링크 간의 탐색을 처리해야 합니다. 즉, 사용자가 웹페이지를 보고 있고 텍스트에서 http:// 주소를 클릭하면 앱은 사용자의 추가 개입 없이 선택된 링크에 대응하는 콘텐츠를 표시할 수 있어야 합니다.
  • 앱은 위치정보를 요청 받고 사용자가 이 요청을 승인한 경우 기기의 현재 위치정보를 웹페이지에 제공할 수 있어야 합니다.
DIALER 다음을 모두 충족해야 합니다.
  • 앱이 암시적 인텐트 요청을 통해 호출할 수 있고 기기가 통화 중일 때 통화 중 사용자 인터페이스를 제공할 수 있는 활동이 앱에 포함되어 있습니다.
  • 앱은 수신 전화 인텐트를 처리하고 수신 전화와 관련된 정보 (예: 발신자 전화번호)를 사용자에게 표시할 수 있습니다. 또한 사용자가 전화를 받거나 거부할 수 있도록 허용할 수 있습니다.
  • 앱은 사용자가 통화를 시작하고 기기에서 통화 기록을 확인할 수 있는 방법을 제공합니다.
SMS 다음을 모두 충족해야 합니다.
  • 앱이 SMS 앱의 요구사항을 모두 충족합니다.
  • 앱이 암시적 인텐트 요청을 통해 호출할 수 있고 전화번호로 메시지를 전송할 수 있는 활동이 앱에 포함되어 있습니다.
  • 앱에는 android.permission.SEND_RESPOND_VIA_MESSAGE 권한으로 관리되고 암시적 인텐트로 호출할 수 있는 서비스가 포함되며 이 서비스는 전화가 수신되는 중에 사용자가 메시지를 통해 응답을 선택하면 전화 앱에서 수신된 메시지를 전송할 수 있습니다. 앱은 자체 메시지 시스템을 통해 메시지를 전송할 수 있습니다.
  • 앱에는 android.permission.BROADCAST_SMS 권한과 android.permission.BROADCAST_WAP_PUSH 권한으로 관리되는 두 개의 broadcast receiver가 있으며 각각 기기에 전송된 텍스트 기반의 SMS와 MMS를 리슨할 수 있습니다. 그런 다음, 앱은 SMS 제공자에 메시지를 작성하고 사용자에게 이를 알립니다.
EMERGENCY 다음을 모두 충족해야 합니다.
  • 앱이 시스템 앱입니다.
  • 앱에 사용자의 긴급 상황 정보를 표시하는 활동이 포함되어 있습니다. 누구나 긴급 다이얼러의 긴급 전화 버튼을 통해 이 화면으로 이동할 수 있습니다.
HOME 사용자가 홈 버튼을 눌렀을 때 홈 화면을 실행할 수 있는 활동이 앱에 포함되어 있습니다. 홈 화면은 앱 아이콘과 위젯을 표시하고 버튼이나 동작 기반의 탐색을 지원해야 합니다(예: 위로 스와이프하여 모든 앱 보기).
CALL_REDIRECTION 앱에 android.permission.BIND_CALL_REDIRECTION_SERVICE 권한으로 관리되는 서비스가 포함되어 있으며 텔레콤 프레임워크는 이 서비스에 바인딩할 수 있습니다. 서비스는 텔레콤 프레임워크에서 발신 전화번호를 수신하고 다음 작업 중 하나를 실행합니다.
  • 통화를 현재 상태 그대로 둡니다.
  • 프록시 번호를 통해 라우팅할 발신 번호를 변경합니다.
  • 전화를 취소합니다.
CALL_SCREENING 앱에 android.permission.BIND_SCREENING_SERVICE 권한으로 관리되는 서비스가 있으며 다음 두 가지 기능을 실행합니다.
  • 통화 차단 및 선택: 서비스는 휴대전화의 다이얼러 앱으로 전송되어야 하는 통화 (DND 또는 볼륨에 따라 벨이 울릴 수 있음)와 음성사서함으로 자동 전송되어야 하는 통화를 선택할 수 있습니다.
  • 통화 식별: 서비스는 사용자 인터페이스를 통해 통화 관련 정보를 식별하고 표시할 수 있습니다.
SYSTEM_GALLERY 다음을 모두 충족해야 합니다.
  • 앱이 시스템 앱입니다.
  • OEM만 앱에 이 역할을 부여할 수 있습니다.
  • 앱은 사용자가 동영상과 이미지를 저장, 구성, 표시할 수 있는 UI를 제공합니다.
SYSTEM_AUTOMOTIVE_CLUSTER 다음을 모두 충족해야 합니다.
  • 앱이 Automotive의 시스템 앱입니다.
  • OEM만 앱에 이 역할을 부여할 수 있습니다.
  • 앱은 사용자가 전화를 받고 연락처 목록과 통화 기록에 액세스할 수 있는 기능을 자동차 계기판 디스플레이(일반적으로 자동차 핸들 가까이에 있음)에 제공해야 합니다.
COMPANION_DEVICE_WATCH 앱은 워치 기기에 연결하여 기기를 관리할 수 있도록 요청할 수 있습니다(CompanionDeviceManager 클래스에서 제공하는 API 사용). 앱에서 제공하는 UI를 통해 워치와 앱이 연결되면 사용자는 연락처 및 캘린더 동기화하고 알림 및 전화 통화를 관리하는 등 앱에서 워치를 관리할 수 있습니다.
SYSTEM_AUTOMOTIVE_PROJECTION 다음을 모두 충족해야 합니다.
  • 앱이 시스템 앱입니다.
  • OEM만 앱에 이 역할을 부여할 수 있습니다.
  • 앱을 사용하여 휴대전화 화면을 차량 디스플레이에 프로젝션할 수 있습니다. 이를 통해 운전자는 터치, 핸들 컨트롤, 음성 명령 등의 입력 메커니즘을 사용하여 Android 휴대전화의 앱(예: 음악, 내비게이션, 전화 통화, 검색 등)에 액세스하고 제어할 수 있습니다.
SYSTEM_SHELL 다음을 모두 충족해야 합니다.
  • 앱이 Process.SHELL_UID UID가 할당된 시스템 앱입니다.
  • OEM만 앱에 이 역할을 부여할 수 있습니다.
  • 앱이 명령줄 수준에서 작동하는 인터페이스를 제공하므로 사용자는 Android OS와 상호작용할 수 있습니다. 예를 들어, 폴더의 콘텐츠를 표시하거나 앱을 실행할 수 있습니다. 셸 명령어는 앱(필수 권한이 부여된 경우) 또는 ADB 도구에서 프로그래매틱 방식으로 실행할 수 있습니다.
SYSTEM_CONTACTS 다음을 모두 충족해야 합니다.
  • 앱이 시스템 앱입니다.
  • OEM만 앱에 이 역할을 부여할 수 있습니다.
  • 앱은 사용자가 연락처를 관리(예: 연락처 보기, 공유, 추가, 삭제, 검색)할 수 있는 UI를 제공합니다. 사용자가 앱에서 연락처를 업데이트하면 앱은 연락처 제공자를 업데이트합니다. 사용자는 앱에서 연락처로 전화를 걸거나 이메일 또는 문자 메시지를 보낼 수 있습니다.
SYSTEM_SPEECH_RECOGNIZER 다음을 모두 충족해야 합니다.
  • 앱이 시스템 앱입니다.
  • OEM만 앱에 이 역할을 부여할 수 있습니다.
  • 앱이 음성 인식을 실행할 수 있는 서비스를 제공합니다.
  • 앱이 음성 인식을 위해 다른 앱에서 실시간 마이크 스트림을 수신하면 호출한 앱을 마이크 사용의 출처로 표시하고 이에 맞게 앱 작업 통계를 업데이트합니다.
SYSTEM_WIFI_COEX_MANAGER 다음을 모두 충족해야 합니다.
  • 앱이 시스템 앱입니다.
  • OEM만 앱에 이 역할을 부여할 수 있습니다.
  • 모바일 데이터 간섭으로 인해 기기에서 사용을 피해야 하는 Wi-Fi 채널 목록을 동적으로 설정하는 서비스가 앱에 포함되어 있습니다.
SYSTEM_WELLBEING 다음을 모두 충족해야 합니다.
  • 앱이 시스템 앱입니다.
  • OEM만 앱에 이 역할을 부여할 수 있습니다.
  • 앱은 사용자의 주의 분산을 줄이고 사용자의 기기 사용 사례에 관한 통계 (예: 주당 기기 사용 시간)를 제시하는 기능을 제공해야 합니다.
SYSTEM_TELEVISION_NOTIFICATION_HANDLER 다음을 모두 충족해야 합니다.
  • 앱이 시스템 앱입니다.
  • OEM만 앱에 이 역할을 부여할 수 있습니다.
  • 앱이 TV 기기 사용자에게 헤드업 알림을 표시해야 합니다. 또한 앱은 android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL 인텐트가 전송될 때 SystemUI의 현재 활성 알림을 표시해야 합니다.
SYSTEM_COMPANION_DEVICE_PROVIDER 다음을 모두 충족해야 합니다.
  • 앱이 시스템 앱입니다.
  • OEM만 앱에 이 역할을 부여할 수 있습니다.
  • 앱이 근처의 주변기기를 감지할 수 있어야 합니다. 사용자가 특정 주변기기를 앱과 연결하고 앱에서 관리해야 하는지 확인할 수 있는 UI가 있어야 합니다. 사용자가 확인하면 관리 앱은 연결된 앱에 주변기기 (예: 이름, 주소, 클래스, 결합 상태)에 액세스할 수 있는 권한을 부여하고 결합 프로세스를 시작할 수 있습니다.
SYSTEM_DOCUMENT_MANAGER 다음을 모두 충족해야 합니다.
  • 앱이 시스템 앱입니다.
  • OEM만 앱에 이 역할을 부여할 수 있습니다.
  • 사용자가 기존 문서에 액세스하고 기기에서 새 문서를 만들 수 있는 활동이 앱에 있습니다.
  • 앱은 Android CDD 섹션 2.2.3. 소프트웨어의 제목 [3.2.3.1/H-0-1]에 설명된 모든 요구사항을 충족해야 합니다.
SYSTEM_ACTIVITY_RECOGNIZER 다음을 모두 충족해야 합니다.
  • 앱이 시스템 앱입니다.
  • 앱에 android.permission.ACTIVITY_RECOGNITION으로 관리되는 서비스가 있으며 이 서비스는 활동 감지 (예: 달리기 또는 사이클링)를 실행할 수 있습니다.
SYSTEM_UI 다음을 모두 충족해야 합니다.
  • 앱이 시스템 앱입니다.
  • OEM만 앱에 이 역할을 부여할 수 있습니다.
  • 앱에 사용자가 휴대전화와 상호작용할 수 있는 인터페이스가 있습니다. 예를 들어, 휴대전화의 기본 화면, 탐색, 최근 앱, 빠른 설정, 알림바, 잠금 화면, 볼륨 제어 등이 있습니다.
SYSTEM_TELEVISION_REMOTE_SERVICE 다음을 모두 충족해야 합니다.
  • 앱이 Android TV의 시스템 앱입니다.
  • OEM만 앱에 이 역할을 부여할 수 있습니다.
  • TV 리모컨인 HID 기기(예: BLE 사용)와 통신하고 이벤트를 삽입하며(예: 버튼 클릭) 기타 데이터(예: 리모컨에 내장된 마이크의 오디오 스트림)를 플랫폼으로 전송할 수 있는 서비스가 앱에 있습니다.
SYSTEM_UI_INTELLIGENCE 다음을 모두 충족해야 합니다.
  • 프레임워크 API(공개 또는 시스템 API)를 통해 시스템 UI 기능을 위한 기기 내 지능형 프로세서 (예: 사용자의 다음 앱 예측 및 표시)를 제공하는 사전 설치된 서비스입니다.
  • 서비스는 Android CDD 섹션 9.8.6 콘텐츠 캡처에 설명된 모든 요구사항을 충족해야 합니다.
  • 서비스는 android.permission.INTERNET 권한을 가질 수 없습니다. 대신, 잘 정의된 오픈소스 프로젝트의 API를 통해 인터넷에 액세스해야 합니다.
  • 블루투스, 연락처, 미디어, 전화 통신, SystemUI 및 인터넷 API를 제공하는 구성요소를 제외하고 서비스가 앱에 바인딩될 수 없습니다. 허용된 각 바인딩은 시스템 구성의 <allow-association> 구성을 통해 명시적으로 설정되어야 합니다.
  • 직접적인 사용자 작업 (예: 데이터가 공유될 때마다 사용자가 명시적으로 버튼을 누름)이 없다면 서비스가 앱과 데이터를 공유할 수 없습니다.
SYSTEM_AMBIENT_AUDIO_INTELLIGENCE 다음을 모두 충족해야 합니다.
  • 사전 설치된 서비스가 주변 오디오용 기기 내 지능형 프로세서(예: 기기 주변에서 재생되는 노래 인식)를 제공하는 경우를 제외하고 SYSTEM_UI_INTELLIGENCE의 조건과 동일합니다.
SYSTEM_AUDIO_INTELLIGENCE 다음을 모두 충족해야 합니다.
  • 사전 설치된 서비스가 오디오용 기기 내 지능형 프로세서 (예: 동영상, 팟캐스트, 전화 통화, 영상 통화, 음성 메시지의 자막 제공)를 제공하는 경우를 제외하고 SYSTEM_UI_INTELLIGENCE의 조건과 동일합니다.
SYSTEM_NOTIFICATION_INTELLIGENCE 다음을 모두 충족해야 합니다.
  • 사전 설치된 서비스가 알림용 기기 내 지능형 프로세서(예: 메시지 알림을 위한 응답 및 작업 제안)를 제공하는 경우를 제외하고 SYSTEM_UI_INTELLIGENCE의 조건과 동일합니다.
SYSTEM_TEXT_INTELLIGENCE 다음을 모두 충족해야 합니다.
  • 사전 설치된 서비스가 텍스트용 기기 내 지능형 프로세서 (예: 실시간 번역 및 자동 완성 제공)를 제공하는 경우를 제외하고 SYSTEM_UI_INTELLIGENCE의 조건과 동일합니다.
SYSTEM_VISUAL_INTELLIGENCE 다음을 모두 충족해야 합니다.
  • 사전 설치된 서비스가 카메라 데이터 분석을 포함한 시각적 기능을 위해 기기 내 지능형 프로세서를 제공하는 경우를 제외하고 SYSTEM_UI_INTELLIGENCE의 조건과 동일합니다. 예를 들어, 사용자가 휴대전화 화면을 보고 있을 때 스마트폰 화면을 활성 상태로 유지하거나 기기의 전면 카메라에서 사용자의 얼굴 방향을 기준으로 이상적인 화면 방향을 결정할 수 있습니다.
COMPANION_DEVICE_APP_STREAMING 다음을 모두 충족해야 합니다.
  • 앱이 시스템 앱입니다.
  • OEM만 앱에 이 역할을 부여할 수 있습니다.
  • 허용된 사용 사례:
    • Android 기반 기기(예: 휴대전화 또는 태블릿)에서 데스크톱 또는 노트북 컴퓨터로 스트리밍, 전송 또는 미러링을 허용하는 앱의 스트리밍, 전송 또는 미러링
  • 기기 A에서 기기 B로 초기 연결을 설정할 때 다음을 충족해야 합니다.
    • 페어링은 소스 기기(A)에 표시되고 연결된 기기(B)에 입력된 일회성 코드로 승인되어야 합니다(MUST). 또는 두 기기의 Android AccountManager에 일치하는 계정이 하나 이상 있는 경우 사용자는 연결된 기기(B)에 계정 비밀번호를 입력하여 페어링을 확인할 수 있습니다(MAY).
    • 페어링하는 동안 두 기기가 서로 가까이 1 있어야 합니다.
  • 스트리밍하는 동안 두 기기가 서로 가까이 1 있어야 합니다.
  • 앱은 연결된 기기를 사용하여 통신 채널을 만들고 관리할 수 있어 기기에서 데이터를 교환할 수 있습니다. 이러한 연결 채널을 설정하려면 앱과 연결된 기기는 서로 성공적으로 인증해야 합니다(예: 공유 키에 관한 지식을 증명하여)(MUST). 통신 채널에는 엔드 투 엔드 암호화 보호가 있어야 합니다(MUST).
  • 사용자가 연결된 기기 (B)의 알림에 작업을 실행할 수 있도록 앱은 소스 기기 (A)에서 연결된 기기 (B)로 알림을 전송할 수 있습니다.
  • 소스 기기 (A)에서 사용 가능한 앱 목록과 같이 앱 스트리밍에 필요한 메타데이터를 연결된 기기 (B)로 스트리밍할 수 있습니다.
  • 사용자가 명시적 동의 (소스 기기 (A) 또는 연결된 기기 (B)에서)로 참여 의사를 밝힌 후 소스 기기 (A)에서 연결된 기기 (B)로 앱을 스트리밍할 수 있습니다.
  • 연결된 기기 (B)의 스트리밍된 앱에서 발생하는 이벤트를 소스 기기 (A)에서 다시 재생 (삽입)할 수 있습니다. 예를 들어 연결된 기기 (B)의 터치 이벤트를 소스 기기 (A)와 동일한 좌표에서 재생하거나 연결된 기기 (B)에서 발생한 입력 이벤트를 소스 기기 (A)와 동일한 입력 시맨틱으로 재생합니다.
  • 스트리밍된 앱이 마이크를 사용하는 동안 앱은 소스 기기의 마이크 스트림을 연결된 기기의 마이크 스트림으로 교체할 수 있습니다.
  • 앱이 소스 기기 (A)에서 오디오를 캡처하여 연결된 기기 (B)로 스트리밍합니다.
  • 연결된 기기(B)에서 설정 앱과 앱 스토어에 대한 액세스를 차단할 것을 권장합니다(RECOMMENDED).
  • Android 16부터 연결된 기기(B)에서 보안 창 및 노출 영역과 같은 민감한 콘텐츠의 스크린샷과 화면 읽기를 방지해야 합니다(MUST).
  • 연결된 기기의 OS 빌드 무결성을 확인해야 합니다(MUST)(예: VerifiedBootState와 마찬가지로 기기 증명을 사용하여).
  • 두 기기에서 모두 기기 내 계정 레지스트리(예: Android의 AccountManager 클래스)에 일치하는 계정이 하나만 있는 앱만 스트리밍합니다. 그렇지 않은 경우 소스 기기(A)에 표시되고 연결된 기기(B)에 입력된 일회성 코드를 통해 스트리밍이 승인되어야 합니다(MUST). Android 멀티 사용자와 같이 동일한 신뢰할 수 있는 데이터 격리가 보장된 멀티 사용자 (다중 계정 아님)를 지원하는 기기의 경우에는 사용자가 기기로 계산됩니다.
  • 연결된 기기(B)에서 계정 인증이 만료되거나 취소되면 연결된 기기(B)에서 즉시 스트리밍을 중지하고 연결을 해제해야 합니다(MUST).
  • 디스플레이 콘텐츠가 표시되는 연결된 기기(B)의 유휴 상태 시간 제한 시 스트리밍을 중지하고 연결된 기기(B)에서 연결을 해제해야 합니다(MUST). Android 기기의 화면을 켜진 상태로 유지하는 WakeLock과 같은 경우 연결된 기기의 화면을 켜진 상태로 유지할 수 있습니다(MAY). 유휴 상태 시간 제한이 있어야 합니다(MUST). 연결된 기기(B)에 자체 유휴 제한 시간이 없는 경우 최대 5분의 유휴 제한 시간을 사용해야 합니다(MUST).
  • 소스 기기(A)에서 잠금 화면 지식 계수(LSKF)를 사용하는 경우 화면이 잠겨 있으면 앱은 연결된 기기(B)에 잠금 화면이 있고 잠금 해제되어 있지 않는 한 연결된 기기(B)로 앱을 스트리밍해서는 안 됩니다(MUST NOT).
  • 소스 기기(A)가 관리자에 의해 관리되는 경우 앱은 근처 기기로의 스트리밍 사용 설정 또는 사용 중지와 관련하여 관리자가 설정한 정책을 준수해야 합니다(예: Android에서 DevicePolicyManager 설정 사용)(MUST).
  • 사용자 관점에서 원격 디스플레이와 원격 입력 이벤트의 모든 소스가 동일한 논리 기기(예: 원격 디스플레이 및 연결된 키보드)에 속하고, 이벤트가 이에 따라 라우팅되는지 확인해야 합니다(MUST).
  • 사용자는 소스 기기(A)에서 스트리밍을 종료할 수 있어야 합니다(MUST)(예: 지속적인 알림의 버튼 사용). 이 동작은 소스 기기 (A)에 화면 잠금이 설정된 경우 잠금 화면을 통해 관리됩니다. 항상 표시되고 스크롤 없이 볼 수 있는 소스 기기(A)에 이 지속적인 어포던스를 표시해야 합니다(MUST).
  • 다른 기기에서 스트리밍이 발생할 때 소스 기기(A)에 어포던스를 표시해야 합니다(예: 상태 표시줄의 아이콘 또는 지속적인 알림)(MUST).
DEVICE_POLICY_MANAGEMENT 다음을 모두 충족해야 합니다.
  • OEM만 앱에 이 역할을 부여할 수 있습니다. 즉, 이 역할은 기기가 출시될 때 OEM에서 정의한 패키지 이름에 즉시 부여되므로 앱은 이 역할을 요청할 수 없습니다.
  • 앱은 필요한 경우 기기/프로필 소유자가 되기 위해 적절한 Device Policy 클라이언트를 다운로드 및 설치하는 것을 비롯하여 관리 프로필 (프로필 소유자) 또는 관리 기기 (기기 소유자)를 프로비저닝할 수 있어야 합니다.
  • 앱은 기기 정책 관리에 사용되는 문자열, 드로어블과 같은 리소스를 동적으로 업데이트할 수도 있습니다(선택사항).
  • 앱은 사전 설치된 시스템 앱이거나 프로비저닝 전에 다운로드하여 설치된 앱일 수 있습니다.
  • 프로필 소유자가 프로비저닝하는 경우 역할 홀더 앱이 지정된 Android 사용자에게 설치되면 앱은 해당 사용자에게 적용할 수 있는 모든 프로필에 설치되어야 합니다.
SYSTEM_APP_PROTECTION_SERVICE 다음을 모두 충족해야 합니다.
  • 앱이 시스템 앱입니다.
  • 이 앱의 유일한 목적은 잠재적으로 위험한 앱(사용자, 사용자 데이터 또는 기기를 트로이 목마, 피싱, 스파이웨어 앱과 같은 위험에 노출할 수 있는 앱)이나 원치 않는 모바일 소프트웨어를 감지하는 것입니다.
  • 앱은 Android CDD 섹션 9.8.6. OS 수준 및 대기 데이터.
  • 앱은 android.permission.INTERNET 일반 권한을 선언하면 안 됩니다. 대신, 잘 정의된 오픈소스 프로젝트의 API를 통해 인터넷에 액세스해야 합니다.
  • 권한 컨트롤러, 전화 통신 및 인터넷 API를 제공하는 구성요소와 같은 시스템 앱을 제외하고 앱에 바인딩하면 안 됩니다. 허용된 각 바인딩은 시스템 구성의 <allow-association> 구성을 통해 명시적으로 설정되어야 합니다.
  • 직접적인 사용자 작업 (예: 데이터가 공유될 때마다 사용자가 명시적으로 버튼을 누름)이 없는 경우 앱과 데이터를 공유하면 안 됩니다.
SYSTEM_AUTOMOTIVE_CALENDAR_SYNC_MANAGER 다음을 모두 충족해야 합니다.
  • 앱이 시스템 앱입니다.
  • OEM만 앱에 이 역할을 부여할 수 있습니다.
  • 앱은 사용자의 iOS 또는 Android 휴대전화에서 Android Auto 기기로 캘린더 데이터를 전송해야 합니다. Android Auto 기기는 이 캘린더 데이터를 캘린더 제공자에 저장해야 합니다.
  • 앱은 사용자가 캘린더 동기화를 사용 설정하고 동기화할 캘린더를 선택하는 데 사용할 수 있는 UI 구성요소를 휴대전화에 제공해야 합니다. 앱은 사용자가 캘린더 동기화를 사용 중지하는 데 사용할 수 있는 UI 구성요소를 휴대전화에 제공해야 합니다.
  • 앱은 인터넷 연결 없이 작동해야 합니다. 예를 들어 직접 유선 연결 또는 무선 연결을 사용하는 것입니다.
AUTOMOTIVE_NAVIGATION 다음을 모두 충족해야 합니다.
  • 앱이 암시적 인텐트 요청을 통해 호출할 수 있는 활동이 앱에 있으며, 이 활동을 통해 사용자의 현재 위치와 주변 환경을 표시합니다.
  • 앱이 암시적 인텐트 요청을 통해 호출할 수 있는 활동이 앱에 있으며, 이 활동을 통해 사용자는 특정 지리적 위치로 이동할 수 있습니다.
  • 앱이 탐색 포커스를 보유할 때 계기판에서 실행되는 활동이 있습니다. 이 활동은 사용자의 현재 위치와 주변 환경을 표시해야 하며 이 활동을 통해 사용자가 특정 지리적 위치로 이동할 수 있어야 합니다.
COMPANION_DEVICE_COMPUTER 다음을 모두 충족해야 합니다.
  • 앱이 시스템 앱입니다.
  • OEM만 앱에 이 역할을 부여할 수 있습니다.
  • 사용자가 알림을 미러링하고 컴퓨터에 연결된 휴대전화의 사진과 미디어에 액세스할 수 있도록 합니다.
SYSTEM_SETTINGS_INTELLIGENCE 다음 중 하나 이상의 요구사항을 충족해야 합니다.
  • 앱이 시스템 앱입니다.
  • OEM만 앱에 이 역할을 부여할 수 있습니다.
  • 추천 및 검색과 같은 인텔리전스 기능을 설정 앱에 제공하는 서비스가 있습니다.
NOTES 다음을 모두 충족해야 합니다.
COMPANION_DEVICE_GLASSES 앱은 안경 기기에 연결하여 기기를 관리할 수 있도록 요청할 수 있습니다(CompanionDeviceManager 클래스에서 제공하는 API 사용). CDM에서 제공하는 UI를 통해 안경 기기와 앱이 연결되고 나면 사용자는 연락처 액세스 권한과 알림 및 전화 통화 관리 권한을 부여하여 안경 기기를 관리할 수 있습니다.
COMPANION_DEVICE_NEARBY_DEVICE_STREAMING 다음을 모두 충족해야 합니다.
  • 앱이 시스템 앱입니다.
  • OEM만 앱에 이 역할을 부여할 수 있습니다.
  • 허용된 사용 사례:
    • 휴대전화나 태블릿과 같은 Android 지원 기기에서 차량으로 앱 스트리밍
    • 휴대전화나 태블릿과 같은 Android 지원 기기에서 XR 기기로 앱 스트리밍
  • 기기 A에서 기기 B로 초기 연결을 설정할 때 다음을 충족해야 합니다.
    • 페어링은 소스 기기(A)에 표시되고 연결된 기기(B)에 입력된 일회성 코드로 승인되어야 합니다(MUST). 또는 두 기기의 Android AccountManager에 일치하는 계정이 하나 이상 있는 경우 사용자는 연결된 기기(B)에 계정 비밀번호를 입력하여 페어링을 확인할 수 있습니다(MAY).
    • 페어링하는 동안 두 기기가 서로 가까이 1 있어야 합니다.
  • 스트리밍하는 동안 두 기기가 서로 가까이 1 있어야 합니다.
  • 앱은 연결된 기기를 사용하여 통신 채널을 만들고 관리할 수 있어 기기에서 데이터를 교환할 수 있습니다. 이러한 연결 채널을 설정하려면 앱과 연결된 기기는 서로 성공적으로 인증해야 합니다(예: 공유 키에 관한 지식을 증명하여)(MUST). 통신 채널에는 엔드 투 엔드 암호화 보호가 있어야 합니다(MUST).
  • 사용자가 연결된 기기 (B)의 알림에 작업을 실행할 수 있도록 앱은 소스 기기 (A)에서 연결된 기기 (B)로 알림을 전송할 수 있습니다.
  • 소스 기기 (A)에서 사용 가능한 앱 목록과 같이 앱 스트리밍에 필요한 메타데이터를 연결된 기기 (B)로 스트리밍할 수 있습니다.
  • 사용자가 명시적 동의 (소스 기기 (A) 또는 연결된 기기 (B)에서)로 참여 의사를 밝힌 후 소스 기기 (A)에서 연결된 기기 (B)로 앱을 스트리밍할 수 있습니다.
  • 연결된 기기 (B)의 스트리밍된 앱에서 발생하는 이벤트를 소스 기기 (A)에서 다시 재생 (삽입)할 수 있습니다. 예를 들어 연결된 기기 (B)의 터치 이벤트를 소스 기기 (A)와 동일한 좌표에서 재생하거나 연결된 기기 (B)에서 발생한 입력 이벤트를 소스 기기 (A)와 동일한 입력 시맨틱으로 재생합니다.
  • 스트리밍된 앱이 마이크를 사용하는 동안 앱은 소스 기기의 마이크 스트림을 연결된 기기의 마이크 스트림으로 교체할 수 있습니다.
  • 앱이 소스 기기 (A)에서 오디오를 캡처하여 연결된 기기 (B)로 스트리밍합니다.
  • 연결된 기기(B)에서 설정 앱과 앱 스토어에 대한 액세스를 차단할 것을 권장합니다(RECOMMENDED).
  • Android 25Q2부터 보안 창 및 노출 영역과 같은 민감한 콘텐츠의 스크린샷 및 화면 읽기는 연결된 기기(B)에서 방지해야 합니다(MUST).
  • 연결된 기기의 OS 빌드 무결성을 확인해야 합니다(MUST)(예: VerifiedBootState와 마찬가지로 기기 증명을 사용하여).
  • 두 기기에서 모두 기기 내 계정 레지스트리(예: Android의 AccountManager 클래스)에 일치하는 계정이 하나만 있는 앱만 스트리밍합니다. 그렇지 않은 경우 소스 기기(A)에 표시되고 연결된 기기(B)에 입력된 일회성 코드를 통해 스트리밍이 승인되어야 합니다(MUST). Android 멀티 사용자와 같이 동일한 신뢰할 수 있는 데이터 격리가 보장된 멀티 사용자 (다중 계정 아님)를 지원하는 기기의 경우에는 사용자가 기기로 계산됩니다.
  • 연결된 기기(B)에서 계정 인증이 만료되거나 취소되면 연결된 기기(B)에서 즉시 스트리밍을 중지하고 연결을 해제해야 합니다(MUST).
  • 디스플레이 콘텐츠가 표시되는 연결된 기기(B)의 유휴 상태 시간 제한 시 스트리밍을 중지하고 연결된 기기(B)에서 연결을 해제해야 합니다(MUST). Android 기기의 화면을 켜진 상태로 유지하는 WakeLock과 같은 경우 연결된 기기의 화면을 켜진 상태로 유지할 수 있습니다(MAY). 유휴 상태 시간 제한이 있어야 합니다(MUST). 연결된 기기(B)에 자체 유휴 제한 시간이 없는 경우 최대 5분의 유휴 제한 시간을 사용해야 합니다(MUST).
  • 소스 기기(A)에서 잠금 화면 지식 계수(LSKF)를 사용하는 경우 화면이 잠겨 있으면 앱은 연결된 기기(B)에 잠금 화면이 있고 잠금 해제되어 있지 않는 한 연결된 기기(B)로 앱을 스트리밍해서는 안 됩니다(MUST NOT).
  • 소스 기기(A)가 관리자에 의해 관리되는 경우 앱은 근처 기기로의 스트리밍 사용 설정 또는 사용 중지와 관련하여 관리자가 설정한 정책을 준수해야 합니다(예: Android에서 DevicePolicyManager 설정 사용)(MUST).
  • 사용자 관점에서 원격 디스플레이와 원격 입력 이벤트의 모든 소스가 동일한 논리 기기(예: 원격 디스플레이 및 연결된 키보드)에 속하고, 이벤트가 이에 따라 라우팅되는지 확인해야 합니다(MUST).
  • 사용자는 소스 기기(A)에서 스트리밍을 종료할 수 있어야 합니다(MUST)(예: 지속적인 알림의 버튼 사용). 이 동작은 소스 기기 (A)에 화면 잠금이 설정된 경우 잠금 화면을 통해 관리됩니다. 항상 표시되고 스크롤 없이 볼 수 있는 소스 기기(A)에 이 지속적인 어포던스를 표시해야 합니다(MUST).
  • 다른 기기에서 스트리밍이 발생할 때 소스 기기(A)에 어포던스를 표시해야 합니다(예: 상태 표시줄의 아이콘 또는 지속적인 알림)(MUST).
WALLET 다음 중 하나:
  • 앱에 PAYMENT 카테고리에 AID를 하나 이상 정적으로 등록하는 NFC APDU 서비스가 있습니다.
  • 앱이 QuickAccessWalletService 인스턴스를 구현합니다.

1 근접성은 두 기기가 서로 블루투스 또는 Wi-Fi 범위 내에 있거나 동일한 로컬 네트워크를 사용하는 것으로 정의됩니다.