Android 12에 도입된 컴패니언 장치 프로필은 컴패니언 앱이 스마트워치와 같은 컴패니언 장치 유형에 특정한 권한 집합을 요청할 수 있도록 하는 기능입니다. 컴패니언 장치 프로필을 사용하면 앱이 권한을 개별적으로 요청하는 여러 프롬프트 대신 정의된 권한 집합을 요청하기 위해 모바일 장치의 사용자에게 단일 프롬프트를 표시할 수 있으므로 등록 프로세스가 간소화됩니다. 이를 통해 보다 간소화된 설정 환경과 컴패니언 앱에 대한 더 나은 옵트인 비율을 제공할 수 있습니다.
컴패니언 장치 프로필의 사용은 컴패니언 장치가 있는 장치 제조업체만 사용할 수 있습니다. 컴패니언 장치가 기능에 액세스하려면 요구 사항 을 충족하고 승인을 받아야 합니다.
Android 12에서 사용할 수 있는 컴패니언 기기 프로필 유형은 COMPANION_DEVICE_WATCH
입니다.
컴패니언 장치에 대한 자세한 내용은 컴패니언 장치 페어링 을 참조하십시오.
기기 동작
이 섹션에서는 컴패니언 장치 프로필이 사용될 때의 장치 동작에 대해 설명합니다.
사용자가 컴패니언 장치와의 연결을 생성하기 위한 앱의 요청을 수락하면 CompanionDeviceManager
(CDM) 서비스는 컴패니언 장치가 연결될 때까지 대기하고 연결되면 CDM은 장치 프로필 역할(예: watch)을 컴패니언 장치에 할당합니다. 지정된 프로필 역할에 대해 정의된 모든 권한을 부여하는 컴패니언 앱. 그림 1은 COMPANION_DEVICE_WATCH
장치 프로필에 대한 권한을 요청하는 앱의 예를 보여줍니다.
그림 1. 시계 장치 프로필에 대한 권한을 요청하는 대화 상자.
앱과 컴패니언 장치 간의 연결이 제거되면(예: 패키지에 대한 데이터가 지워지거나 장치를 잊어버린 경우) CDM은 앱에 대한 장치 프로필 역할을 취소하여 프로필 역할에 대해 정의된 모든 권한을 제거합니다. 앱에서.
사용자가 특정 장치 프로필에 대한 권한 부여 요청을 수락한 후 사용자는 부여된 개별 권한을 취소할 수 있습니다. 사용자가 권한을 취소하면 앱이 도우미 장치와 연결된 상태로 유지되지만 특정 기능을 사용하지 못할 수 있습니다. 앱이 작동하기 위해 권한이 필요한 경우 앱은 일반 권한 요청 을 통해 권한을 요청해야 합니다.
요구 사항
컴패니언 앱이 컴패니언 장치 프로필 API에 액세스하려면 앱이 다음 요구 사항을 충족해야 합니다.
- 컴패니언 장치(예: 스마트워치)가 있습니다.
- 컴패니언 장치 프로필에 대해 정의된 권한을 요구하는 정당한 이유가 있어야 합니다.
컴패니언 장치 프로필 요구 사항 보기
다음 표에서는 COMPANION_DEVICE_WATCH
장치 프로필 역할에 대해 정의된 권한과 이를 사용하기 위한 요구 사항을 설명합니다.
권한 | 컴패니언 앱 및 기기 요구 사항 |
---|---|
알림BIND_NOTIFICATION_LISTENER_SERVICE |
|
핸드폰phone |
|
SMSsms |
|
콘택트 렌즈contacts |
|
달력calendar |
|
주변 기기nearby_devices |
|
eSIM 프로비저닝USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER |
|
진행 중인 통화 관리MANAGE_ONGOING_CALLS |
|
액세스 권한 얻기
앱이 컴패니언 장치 프로필에 액세스하려면 승인을 받고 허용 목록에 추가해야 합니다. 허용 목록에 추가하라는 요청이 수신되면 Android 팀은 앱을 검토하여 해당 컴패니언 장치 프로필의 요구 사항 을 충족하는지 확인합니다.
GMS 파트너:
파트너는 Google 계정 관리자에게 연락하여 허용 목록에 컴패니언 앱을 추가하도록 요청할 수 있습니다.
구현
특정 기기와 함께 컴패니언 앱을 구현하는 기기 제조업체의 경우 다음 필수 Android 시스템 구성을 사용하여 컴패니언 앱을 인증하면 앱이 사용자에게 CDM 프롬프트 표시를 건너뛸 수 있습니다.
다음 명령을 사용하여 인증서를 검색합니다.
keytool -printcert -jarfile PATH/TO/APK
구성 파일의 다음 샘플 입력에 표시된 대로 패키지 이름과 인증서를 바꿉니다.
<!-- A list of packages managing companion device(s) by the same manufacturers as the main device. It will not create the association without prompting if the association has been called multiple times in a short period. Note that config_companionDeviceManagerPackage and config_companionDeviceCerts are parallel arrays. --> <string-array name="config_companionDevicePackages" translatable="false"> <item>YOUR_COMAPNION_APP_PACKAGE_NAME</item> </string-array> <!-- A list of SHA256 Certificates managing companion device(s) by the same manufacturers as the main device. It will fall back to showing a prompt if the association has been called multiple times in a short period. Note that config_companionDeviceCerts and config_companionDeviceManagerPackage are parallel arrays. Example: "1A:2B:3C:4D" --> <string-array name="config_companionDeviceCerts" translatable="false"> <item>YOUR_COMPANION_APP_CERTIFICATE</item> </string-array>
AssociationRequest
를 사용하여 단일 컴패니언 장치에 연결 요청을 수행합니다.
DEVICE_PROFILE_WATCH
프로필을 요청하는 컴패니언 앱을 구현하는 타사 개발자의 경우 다음을 수행합니다.
-
setDeviceProfile
메소드를 호출하십시오. -
AssociationRequest
를 빌드할 때DEVICE_PROFILE_WATCH
프로필을 전달합니다.
확인
컴패니언 장치 프로필 기능의 동작을 테스트하려면 다음 CTS 테스트를 사용하세요.