Android 15 이상을 실행하는 기기의 경우 DomainSelectionService 시스템 API를 사용하여 회선 교환 네트워크를 통해 IMS 서비스와 기존 서비스 간 도메인 선택을 구현할 수 있습니다. DomainSelectionService는 Android 플랫폼과 공급업체 제공 도메인 선택 구현 간의 잘 정의된 인터페이스입니다. 이 인터페이스를 통해 공급업체 구현은 발신 전화 및 SMS가 배치된 도메인, 네트워크 검색의 네트워크 유형 환경설정과 같은 신호 정보를 플랫폼에 제공할 수 있습니다.
 
그림 1. 도메인 선택 기능의 아키텍처 다이어그램
예 및 소스
Android는 Android 오픈소스 프로젝트 (AOSP)의 TelephonyDomainSelectionService에서 도메인 선택 기능의 참조 구현을 제공합니다.
DomainSelectionService API에 관한 자세한 문서는 DomainSelectionService 및 API의 다른 클래스를 참고하세요.
구현
Android 기반 기기에서 도메인 선택 기능을 구현하려면 다음 단계가 필요합니다.
- 도메인 선택 앱을 만듭니다. 서비스는 - AndroidManifest.xml파일에 정의해야 합니다.
- 플랫폼이 - DomainSelectionService구현에 바인딩되도록 기기 오버레이에 구성을 추가합니다.
- 도메인 선택 기능에 필요한 라디오 하드웨어 추상화 계층 (HAL) 인터페이스를 지원해야 합니다. 
이 섹션에서는 이러한 단계를 자세히 설명합니다.
AndroidManifest.xml에 서비스 항목 추가
도메인 선택 앱이 프레임워크에 DomainSelectionService 서비스를 등록하려면 다음 형식을 사용하여 매니페스트 파일에 서비스 항목을 추가하세요.
<service
     android:name="com.example.domainselection.DomainSelectionService"
     android:directBootAware="true"
     android:persistent="true"
     …
     android:permission="android.permission.BIND_DOMAIN_SELECTION_SERVICE"
     …
    <intent-filter>
        <action android:name="android.telephony.DomainSelectionService"/>
    </intent-filter>
    …
</service>
AndroidManifest.xml의 서비스 정의는 도메인 선택 기능이 작동하도록 다음 속성을 정의해야 합니다.
- directBootAware="true": 사용자가 기기를 잠금 해제하기 전에 전화 통신에서 서비스를 검색하고 실행할 수 있습니다. 서비스는 사용자가 기기를 잠금 해제하기 전에 기기 암호화 저장소에 액세스할 수 없습니다. 자세한 내용은 직접 부팅 모드 지원과 파일 기반 암호화를 참고하세요.
- persistent="true": 서비스를 지속적으로 실행하고 시스템에서 메모리를 회수하기 위해 서비스를 종료하지 못하도록 합니다. 이 속성은 앱이 시스템 앱으로 빌드된 경우에만 작동합니다.
- permission="android.permission.BIND_DOMAIN_SELECTION_SERVICE":- BIND_DOMAIN_SELECTION_SERVICE권한이 부여된 프로세스만 앱에 바인딩할 수 있는지 확인합니다. 프레임워크에서 시스템 앱에만 권한을 부여할 수 있으므로 이는 허가받지 않은 앱이 서비스에 바인딩하는 것을 방지합니다.
또한 서비스는 android.telephony.DomainSelectionService 작업을 사용하여 intent-filter 요소를 지정해야 합니다. 이렇게 하면 프레임워크에서 DomainSelectionService 서비스를 찾을 수 있습니다.
기기 오버레이에서 구성 정의
플랫폼이 DomainSelectionService 서비스에 안전하게 바인딩되도록 하려면 다음 구성을 기기 오버레이에 추가하세요.
- config_domain_selection_service_component_name:- DomainSelectionService서비스의 구성요소 이름(플랫- ComponentName문자열)입니다.
Android는 서드 파티 다운로드 가능 DomainSelectionService 구현이 있는 앱을 지원하지 않으므로 도메인 선택 앱은 /system_ext/priv-app/ 또는 /product/priv-app/ 폴더에 있는 시스템 앱이어야 합니다. 프레임워크는 구현의 패키지 이름이 기기 오버레이 값과 일치하는지 확인하여 신뢰할 수 있고 미리 설치된 앱만 바인딩되는지 확인합니다.
라디오 HAL 인터페이스 지원
도메인 선택 기능을 사용 설정하려면 다음 필수 라디오 HAL 인터페이스를 지원해야 합니다.
- 
void setEmergencyMode(int serial, EmergencyMode emcModeType); void triggerEmergencyNetworkScan(int serial, EmergencyNetworkScanTrigger request); void cancelEmergencyNetworkScan(int serial, boolean resetScan); void exitEmergencyMode(int serial);
- 
void emergencyNetworkScanResult(RadioIndicationType type, EmergencyRegResult result);
유효성 검사
텔레포니 프레임워크가 DomainSelectionService 인터페이스에 제대로 응답하는지 테스트하려면 DomainSelectionServiceTestOnMockModem에서 호환성 테스트 도구 모음 (CTS) 테스트를 실행합니다.