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 권한으로 관리되는 서비스가 있으며 다음 두 가지 기능을 실행합니다.
  1. 통화 차단/선택: 서비스는 휴대전화의 다이얼러 앱으로 전송되어야 하는 통화(DND/볼륨에 따라 벨이 울릴 수 있음)와 음성사서함으로 자동 전송되어야 하는 통화를 선택할 수 있습니다.
  2. 통화 식별: 서비스는 사용자 인터페이스를 통해 통화 관련 정보를 식별하고 표시할 수 있습니다.
SYSTEM_GALLERY 다음을 모두 충족해야 합니다.
  • 앱이 시스템 앱입니다.
  • OEM만 앱에 이 역할을 부여할 수 있습니다.
  • 앱은 사용자가 동영상과 이미지를 저장, 구성, 표시할 수 있는 UI를 제공합니다.
SYSTEM_AUTOMOTIVE_CLUSTER 다음을 모두 충족해야 합니다.
  • 앱이 Automotive의 시스템 앱입니다.
  • OEM만 앱에 이 역할을 부여할 수 있습니다.
  • 앱은 사용자가 전화를 받고 연락처 목록과 통화 기록에 액세스할 수 있는 기능을 자동차 계기판 디스플레이(일반적으로 자동차 핸들 가까이에 있음)에 제공해야 합니다.
COMPANION_DEVICE_WATCH 앱은 워치 기기에 연결하여 기기를 관리할 수 있도록 요청할 수 있습니다(CompanionDeviceManager 클래스에서 제공하는 API 사용). 앱에서 제공하는 UI를 통해 워치와 앱이 연결되면 사용자는 연락처 및 캘린더 동기화하고 알림 및 전화 통화를 관리하는 등 앱에서 워치를 관리할 수 있습니다.
SYSTEM_AUTOMOTIVE_PROJECTION 다음을 모두 충족해야 합니다.
  • 앱이 시스템 앱입니다.
  • OEM만 앱에 이 역할을 부여할 수 있습니다.
  • 앱을 사용하여 휴대전화 화면을 차량 디스플레이에 프로젝션할 수 있습니다. 이를 통해 운전자는 터치, 핸들 컨트롤, 음성 명령 등의 입력 메커니즘을 사용하여 Android 휴대전화의 애플리케이션(예: 음악, 내비게이션, 전화 통화, Google 검색 등)에 액세스하고 제어할 수 있습니다.
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만 앱에 이 역할을 부여할 수 있습니다.
  • 앱은 연결된 기기를 사용하여 통신 채널을 만들고 관리할 수 있으며, 데이터를 교환할 수 있습니다. 이러한 연결 채널을 설정하려면 앱과 연결된 기기는 서로 성공적으로 인증해야 합니다(예: 공유 키에 관한 지식을 증명하여). 통신 채널에는 암호화 보호가 있어야 합니다.
  • 사용자가 연결된 기기의 알림에 작업을 실행할 수 있도록 앱은 로컬 기기에서 연결된 기기로 알림을 전송할 수 있습니다.
  • 로컬 기기에서 사용 가능한 애플리케이션 목록과 같이 앱 스트리밍에 필요한 메타데이터를 연결된 기기로 스트리밍할 수 있습니다.
  • 사용자가 명시적 동의(휴대전화 또는 연결된 기기에서)로 참여 의사를 밝힌 후 로컬 기기에서 연결된 기기로 애플리케이션을 스트리밍할 수 있습니다.
  • 연결된 기기의 스트리밍된 애플리케이션에서 발생하는 이벤트를 로컬 기기에서 다시 재생(삽입)할 수 있습니다. 예를 들어, 태블릿의 터치 이벤트를 휴대전화의 동일한 좌표에서 재생합니다.
  • 스트리밍된 앱이 마이크를 사용하는 동안 앱은 로컬 기기의 마이크 스트림을 연결된 기기의 마이크 스트림으로 교체할 수 있습니다.
  • 앱이 기기에서 오디오를 캡처하여 연결된 기기로 스트리밍합니다.
  • 스트리밍 앱이 카메라를 사용하는 동안 로컬 기기의 카메라 스트림을 차단해야 합니다.
  • 연결된 기기의 OS 빌드 무결성을 확인해야 합니다(예: VerifiedBootState와 마찬가지로 기기 증명을 사용하여).
  • 두 기기에서 모두 기기 내 계정 레지스트리(예: Android의 AccountManager)에 일치하는 계정이 하나만 있는 앱만 스트리밍합니다. 그렇지 않은 경우 소스 기기에 표시되고 연결된 기기에 입력된 일회성 코드를 통해 스트리밍이 승인되어야 합니다. Android 멀티 사용자와 같이 동일한 데이터 격리가 보장된 멀티 사용자(다중 계정 아님)를 지원하는 기기의 경우에는 사용자가 기기로 계산됩니다.
  • 연결된 기기에서 계정 인증이 만료되거나 취소되면 연결된 기기에서 즉시 스트리밍을 중지하고 연결을 해제해야 합니다.
  • 스트리밍하기 전과 하는 도중에 연결된 기기가 로컬 기기의 블루투스 범위 내에 있는지 확인해야 합니다.
  • 사용자가 연결된 기기와 5분 동안 상호작용하지 않으면 (예: 키보드, 터치스크린, 마우스가 비활성 상태) 진행 중인 앱 스트리밍 세션의 연결을 해제해야 합니다. 동영상 스트리밍 앱은 이 요구사항에서 제외됩니다.
  • 소스 기기에서 잠금 화면 지식 계수(LSKF)를 사용하는 경우 화면이 잠겨 있으면 앱은 기기에 잠금 화면이 있고 잠금 해제되어 있지 않는 한 연결된 기기로 애플리케이션을 스트리밍해서는 안 됩니다.
  • 관리자가 기기를 관리하는 경우 앱은 근처 기기로의 앱 스트리밍 사용 설정 또는 사용 중지와 관련하여 관리자가 설정한 정책을 준수해야 합니다(예: Android에서 DevicePolicyManager 설정 사용).
  • 사용자 관점에서 원격 디스플레이와 원격 입력 이벤트의 모든 소스가 동일한 논리 기기(예: 원격 디스플레이 및 연결된 키보드)에 속하고, 이벤트가 이에 따라 라우팅되는지 확인해야 합니다.
  • 사용자는 로컬 기기에서 스트리밍을 종료할 수 있어야 합니다(예: 지속적인 알림의 버튼 사용). 이 동작은 휴대전화에 화면 잠금이 설정된 경우 잠금 화면을 통해 관리됩니다.
  • 다른 기기에서 스트리밍이 발생할 때 소스 기기에 어포던스를 표시해야 합니다(예: 상태 표시줄의 아이콘 또는 지속적인 알림).
DEVICE_POLICY_MANAGEMENT 다음을 모두 충족해야 합니다.
  • OEM만 앱에 이 역할을 부여할 수 있습니다. 즉, 이 역할은 기기가 출시될 때 OEM에서 정의한 패키지 이름에 즉시 부여되므로 애플리케이션은 이 역할을 요청할 수 없습니다.
  • 앱은 필요한 경우 기기/프로필 소유자가 되기 위해 적절한 Device Policy 클라이언트를 다운로드/설치하는 것을 비롯하여 관리 프로필(프로필 소유자) 또는 관리 기기(기기 소유자)를 프로비저닝할 수 있어야 합니다.
  • 앱은 기기 정책 관리에 사용되는 문자열, 드로어블과 같은 리소스를 동적으로 업데이트할 수도 있습니다(선택사항).
  • 앱은 사전 설치된 시스템 앱이거나 프로비저닝 전에 다운로드하여 설치된 앱일 수 있습니다.
  • 프로필 소유자가 프로비저닝하는 경우 역할 홀더 앱이 지정된 Android 사용자에게 설치되면 앱은 해당 사용자에게 적용할 수 있는 모든 프로필에 설치되어야 합니다.
SYSTEM_APP_PROTECTION_SERVICE 다음을 모두 충족해야 합니다.
  • 앱이 시스템 앱입니다.
  • 이 앱의 유일한 목적은 잠재적으로 위험한 앱(사용자, 사용자 데이터 또는 기기를 트로이 목마, 피싱, 스파이웨어 앱과 같은 위험에 노출할 수 있는 앱)이나 원치 않는 모바일 소프트웨어를 감지하는 것입니다.
  • 앱은 Android CDD 섹션 9.8.6 콘텐츠 캡처에 설명된 모든 요구사항을 충족해야 합니다.
  • 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만 앱에 이 역할을 부여할 수 있습니다.
  • 추천 및 검색과 같은 인텔리전스 기능을 설정 앱에 제공하는 서비스가 있습니다.
참고 다음을 모두 충족해야 합니다.
COMPANION_DEVICE_GLASSES 앱은 안경 기기에 연결하여 기기를 관리할 수 있도록 요청할 수 있습니다(CompanionDeviceManager 클래스에서 제공하는 API 사용). CDM에서 제공하는 UI를 통해 안경 기기와 앱이 연결되고 나면 사용자는 연락처 액세스 권한과 알림 및 전화 통화 관리 권한을 부여하여 안경 기기를 관리할 수 있습니다.
COMPANION_DEVICE_NEARBY_DEVICE_STREAMING 다음을 모두 충족해야 합니다.
  • 앱이 시스템 앱입니다.
  • OEM만 앱에 이 역할을 부여할 수 있습니다.
  • 앱은 연결된 기기를 사용하여 통신 채널을 만들고 관리할 수 있어 기기에서 데이터를 교환할 수 있습니다. 이러한 연결 채널을 설정하려면 앱과 연결된 기기는 서로 성공적으로 인증해야 합니다(예: 공유 키에 관한 지식을 증명하여). 통신 채널에는 암호화 보호가 있어야 합니다.
  • 사용자가 연결된 기기의 알림에 작업을 실행할 수 있도록 앱은 로컬 기기에서 연결된 기기로 알림을 전송할 수 있습니다.
  • 로컬 기기에서 사용 가능한 애플리케이션 목록과 같이 앱 스트리밍에 필요한 메타데이터를 연결된 기기로 스트리밍할 수 있습니다.
  • 사용자가 명시적 동의(휴대전화 또는 연결된 기기에서)로 참여 의사를 밝힌 후 로컬 기기에서 연결된 기기로 애플리케이션을 스트리밍할 수 있습니다.
  • 연결된 기기의 스트리밍된 애플리케이션에서 발생하는 이벤트를 로컬 기기에서 다시 재생(삽입)할 수 있습니다. 예를 들어 태블릿의 터치 이벤트를 휴대전화와 동일한 좌표에서 재생하거나 안경 기기에서 발생한 입력 이벤트를 휴대전화와 동일한 입력 시맨틱으로 재생합니다.
  • 스트리밍된 앱이 마이크를 사용하는 동안 앱은 로컬 기기의 마이크 스트림을 연결된 기기의 마이크 스트림으로 교체할 수 있습니다.
  • 앱이 기기에서 오디오를 캡처하여 연결된 기기로 스트리밍합니다.
  • 연결된 기기의 OS 빌드 무결성을 확인해야 합니다(예: VerifiedBootState와 마찬가지로 기기 증명을 사용하여).
  • 두 기기에서 모두 기기 내 계정 레지스트리(예: Android의 AccountManager)에 일치하는 계정이 하나만 있는 앱만 스트리밍합니다. 그렇지 않은 경우 소스 기기에 표시되고 연결된 기기에 입력된 일회성 코드를 통해 스트리밍이 승인되어야 합니다. Android 멀티 사용자와 같이 동일한 데이터 격리가 보장된 멀티 사용자(다중 계정 아님)를 지원하는 기기의 경우에는 사용자가 기기로 계산됩니다.
  • 연결된 기기에서 계정 인증이 만료되거나 취소되면 연결된 기기에서 즉시 스트리밍을 중지하고 연결을 해제해야 합니다.
  • 소스 기기에서 잠금 화면 지식 계수(LSKF)를 사용하는 경우 화면이 잠겨 있으면 앱은 기기에 잠금 화면이 있고 잠금 해제되어 있지 않는 한 연결된 기기로 애플리케이션을 스트리밍해서는 안 됩니다.
  • 관리자가 기기를 관리하는 경우 앱은 근처 기기로의 스트리밍 사용 설정 또는 사용 중지와 관련하여 관리자가 설정한 정책을 준수해야 합니다(예: Android에서 DevicePolicyManager 설정 사용).
  • 사용자 관점에서 원격 디스플레이와 원격 입력 이벤트의 모든 소스가 동일한 논리 기기(예: 원격 디스플레이 및 연결된 키보드)에 속하고, 이벤트가 이에 따라 라우팅되는지 확인해야 합니다.
  • 사용자는 로컬 기기에서 스트리밍을 종료할 수 있어야 합니다(예: 지속적인 알림의 버튼 사용). 이 동작은 휴대전화에 화면 잠금이 설정된 경우 잠금 화면을 통해 관리됩니다.
  • 다른 기기에서 스트리밍이 발생할 때 소스 기기에 어포던스를 표시해야 합니다(예: 상태 표시줄의 아이콘 또는 지속적인 알림).