전화 계정 추천

Android 10에서는 전화 계정 추천 서비스를 사용하여 사용자가 전화를 걸 때 전화 계정 추천이 표시되도록 할 수 있습니다. 예를 들어 SIM이 여러 개이고 네트워크 내 통화 요금이 더 낮은 기기를 가진 사용자의 경우, 이 서비스는 먼저 수신자의 이동통신사를 식별한 후 수신자와 동일한 네트워크의 SIM 사용을 추천합니다.

전화 계정 추천 서비스는 선택사항이며 Android 10 이상을 실행하는 기기에서 구현할 수 있습니다.

구현

전화 계정 추천을 구현하려면 /system/priv-app/에 있는 앱에서 PhoneAccountSuggestionService 서비스를 하나 구현합니다. 둘 이상의 PhoneAccountSuggestionService가 구현되면 서비스는 쿼리되지 않습니다. 서비스는 android.Manifest.permission.BIND_PHONE_ACCOUNT_SUGGESTION_SERVICE 권한을 선언해야 합니다.

기본 발신 전화 계정기본 전화 계정이 모두 수신자에게 설정되어 있지 않은 발신 전화를 사용자가 걸면 통신사 서비스는 PhoneAccountSuggestionService에 바인딩하여 계정에 관한 정보를 수집하고 onAccountSuggestionRequest(String number)가 호출되며 발신 전화 처리는 정지됩니다.

PhoneAccountSuggestionServiceonAccountSuggestionRequest(String number)에서 반환된 번호로 suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions)를 호출해야 합니다.

suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions)가 호출되면 통신사 서비스는 추천된 전화 계정 목록을 반환합니다. 그러면 다이얼러에서는 사용자가 전화를 걸 때 선택할 수 있는 추천 전화 계정의 목록을 표시해야 합니다.

PhoneAccountSuggestion

추천하려면 PhoneAccountSuggestion 클래스를 사용하세요. 예를 들어 서비스에서 수신자가 기기의 SIM 중 하나와 동일한 이동통신사를 사용한다고 확인하면 서비스는 REASON_INTRA_CARRIER로 전화 계정을 표시해야 합니다. 그러면 다이얼러의 사용자에게 정보가 전달될 수 있습니다.

예를 들어 사용자가 업무용 Google 계정의 모든 연락처에 업무용 SIM을 사용하도록 구성했다면 서비스는 전화 계정을 REASON_USER_SET로 표시하고 shouldAutoSelect를 true로 설정해야 합니다. 이를 통해 다이얼러에서 선택 대화상자를 우회하고 전화 계정을 사용하여 자동으로 전화를 걸 수 있습니다.

다른 추천에 관한 자세한 내용은 PhoneAccountSuggestion을 참조하세요.

다이얼러

통화가 STATE_SELECT_PHONE_ACCOUNT 상태가 되면 다이얼러는 PhoneAccountSuggestion의 정보를 사용하여 EXTRA_SUGGESTED_PHONE_ACCOUNTS를 처리해야 합니다.

서비스 사용 중지

특정 이동통신사의 구현을 맞춤설정하려면 setComponentEnabledSetting을 사용하여 서비스를 사용 설정하거나 사용 중지하면 됩니다. 사용 중지되면 서비스는 쿼리되지 않습니다.

시스템 UI 구현

구현에 따라 시스템 UI를 변경해야 할 수 있습니다. 예를 들어 사용자가 특정 연락처의 모든 통화를 특정 전화 계정에서 이루어지도록 지정할 수 있으려면 기기에 맞춤설정된 설정 흐름과 설정 UI를 구현해야 합니다.

유효성 검사

구현을 확인하려면 다음 CTS 테스트를 실행하세요.