단말 하나가 여러개의 SIM을 가질 수 있습니다. 우리나라야 아직 단일 SIM 체제 이지만, 외국은 듀얼심이나, 더하여 트리플심을 갖는 모델들도 존재 합니다. 인도같은 곳에서는 전화가 잘터지는 메인 통신사 심을 꼽고, 데이터가 싼 통신사 심을 하나 더 꼽아서 역할을 분리해서 사용한다고들 하네요. 한 5~6년전에 들은 얘기라 아직도 유효할지는 모르겠지만 위와 같은 이유든, 번호를 두개 가지고 싶은 사람이든, 한개 이상의 SIM을 가지고 있는 단말들이 존재합니다.
따라서 TelephonyManager와 SuscriptionManager의 API 사용시 ID를 통하여 SIM을 구분하도록 되어 있습니다. 여기서는 이렇게 여러개의 SIM 있는 상황을 구분하기 위한 ID로 사용되는것들의 종류에 대해서 알아보고자 합니다.
Subscription ID
모바일 네트워크를 구독하기 위한 Unique ID를 말합니다.
Logical slot index or ID
논리적인 SIM slot을 참조하며 0부터 시작되는 unique index 입니다. Logical한 slot이기 때문에 active된 slot만 index를 갖습니다. 예를들어 dual-SIM 단말에 심을 한개만 꼽았다면 Logical slot index는 0 하나만 존재 하게 됩니다. 둘다 꼽았다면 index가 0, 1로 두개가 존재 하겠죠?
Physical slot index or ID
물리적으로 존재하는 SIM slot의 개수만큼 unique한 index를 갖습니다. 따라서 dual-SIM이라면 상태와 상관없이 slot id는 0,1 두개를 갖습니다. 만약 dual-SIM 단말에서 single-SIM 모드로 전환한다면 Physical ID는 두개, Logical ID는 한개가 됩니다.
Card Id
UiccCard를 구분하는 unique ID 입니다.
Example
case #1
자 그럼 physical ID와 Logical ID의 예제를 한번 보도록 하겠습니다.
위 그림의 경우 단말이 세개의 SIM slot을 가지고 있습니다.
- Slot 0: UICC SIM 카드가 꼽혀있고, active 된 상태
- Slot 1: SIM 카드가 없는 상태
- Slot 2: eUICC card가 있고 active된 상태
Physical Slot ID는 0, 1, 2 로 총 세개임.
Logical Slot ID는 0, 1로 두개임.
case #2
위 그림의 경우 두개의 물리적인 SIM slot을 가지고 있습니다.
- Slot 0: UICC SIM 카드가 꼽혀있고, active된 상태
- Slot 1: 하나의 eUICC에 두개의 profile을 다운받아 MEP(Multiple Enabled Profiles)를 사용하여 둘다 activie 된 상태
Physical Slot ID는 0, 1 로 총 두개임.
Logical Slot ID는 0, 1, 2로 세개임.
References
1. https://developer.android.com/guide/topics/connectivity/telecom/telephony-ids
'개발이야기 > Android' 카테고리의 다른 글
Dependency에 따른 앱용량 변경 측정 방법 (0) | 2022.04.14 |
---|---|
[Compose] Button Selector in Android Jetpack (0) | 2022.02.28 |
[Compose] Under the hood of Compose - @Compose, Positional Memoization (0) | 2021.11.19 |
[Compose] Understanding compose lifecycle and recomposing with case study (0) | 2021.11.16 |
[Compose] Google Summit 2021 - Deep dive into Jetpack Compose layouts (0) | 2021.11.15 |