IOS 와는 달리 AOS 즉, 안드로이드는 SIM 정보를 읽어올 수 있다.
https://developer.android.com/reference/android/telephony/TelephonyManager
위 링크에 있는 TelephonyManager 객체를 이용하여 SIM 정보를 가져올 수 있고, 다양한 정보를 확인할 수 있다.
그 중에 망사업자 정보에 대해서 이야기를 하고싶었다.
이번 개발 과제는 통신사를 뽑아서 전달을 해야했다. 일단 3사 망 사업자 데이터는 어떻게 들어올까?
3사(MNO) 망사업자 추출 값
SKT > SKTelecom
KT > KT
LG > LG U+
networkOperatorName 함수를 이용하여 '망사업자 정보'를 추출하면 위와 같이 정보가 나온다.
다른 블로그를 참고해보면, KT 가 olleh 라는 값을 추출됐던 적이 있던 거 같아. olleh case 도 넣어두면 좋을 거 같다.
사실 각 통신사 별로 다 가지고 있어서 테스트를 해서 추출한 값인데
알뜰폰은 없었다....
알뜰폰은 어떤 값들이 나오지?
일단, KT 알뜰폰(MVNO) 만 값을 뽑아 봤을 때, 동일한 KT 값이 나왔다.
다른 두 통신사 MVNO 를 테스트 해보진 않았지만, 유추하는 건 동일할 것이라고 본다.
결국 알뜰폰(MVNO) 는 3사 통신사(MNO) 망을 대여해서 사용하기 때문에 SIM 정보가 동일하지 않을까 라는 합리적 의심이다.
결국, networkOperatorName 함수를 가지고 총 6가지 (3사 통신사, 3사 알뜰폰 통신사) 통신사를 구분 지을 수 있게 값 추출이 안됐다.
그래서 다른 방법을 찾아봤지만, 그건 신뢰를 할 수 없지만 내용 공유를 하겠다.
https://source.android.com/docs/core/connect/carrierid?hl=ko
위 링크를 확인해보면,
MVNO, MNO 를 MCC 와 MNC 및 MVNO 정보를 특정 이동통신사에 매핑을하여, 구성된 파일을 가지고 통신사 정보를 확인하는 방법이다.
그런데 이 정보는 지속적으로 추가되는 통신사가 생기면 파일관리가 필요하며, 신뢰할 수 있는 정보라고 확신할 수 없기에 좋은 방법은 아니다 라는 판단을 내렸다.
따라서 아직 MVNO와 MNO 구분이 어려워 어떤 방식으로 해야할 지 고민해봐야 할 거 같다.
방법이 있다면, 댓글을 달아주었으면 한다.
추가로, 아래 링크를 확인하면, MCC + MNC 를 가지고 통신사 3사를 구분할 수 있으니 확인해보면 좋을 것이다.
정리하자면,
3사 알뜰폰(MVNO)도 위에서 적어놓은 정보와 동일하게 값이 추출할 것으로 판단된다. (KT 는 동일하다.)
'Mobile App > Android' 카테고리의 다른 글
[안드로이드] 앱 위변조 방지 (루팅, 탈옥, 패킷탈취, 디버깅툴 탐지 등) (0) | 2024.04.15 |
---|---|
[안드로이드] AlarmManager 디버깅 (0) | 2024.04.11 |
[안드로이드] SMS Retriever API 내부앱공유에서 안되는 이유 (Debug Hash 값, Release Hash 값) (0) | 2024.04.03 |
[안드로이드] SMS Retriever API 자동입력하는 방법은? (*Android Hash Key 가져오기 *KMC 등 본인확인 기관 문의 ) (2) | 2024.03.17 |
[안드로이드] release 해서 앱 실행하면 왜 crash 가 발생할까? (ProGuard leads to NullPointerException) (0) | 2024.02.25 |