2011-12-20 2 views
11

안드로이드를 사용하여 SIM에서 MSISDN을 가져 오려고 시도했습니다. getLine1Number()하지만이 경우 내 전화 정보 또는 소유자 정보를 저장 한 MSISDN 만 반환합니다. 정보가 저장되지 않으면 Android가 null 값을 반환합니다.안드로이드를 사용하여 SIM에서 MSISDN 가져 오기

이 문제를 해결하려면 무엇이 있습니까? 또는 SIM 번호 (getSimSerialNumber())에서 MSISDN을 파생시키는 방법이 있습니까?

단호한 답을 항상 기다리고 있습니다 !!! :)

답변

20

MSISDN (휴대 전화 번호라고도 함)은 SIM 데이터가 아니므로 검색 할 수 없습니다. SIM 카드에는 매핑 수행을 담당하는 HLR (홈 위치 등록기)에 전송되는 IMSI (International Mobile Subsriber Identity)가 있습니다. MSISDN/IMSI. 휴대폰 사업자는 원하는 경우 SIM 카드에 MSISDN을 저장할 수 있지만 GSM 프로토콜에서는 필요하지 않으므로 MSISDN을 SIM 카드에 저장할 수 있습니다.

죄송합니다. 더 많은 정보를 들어

이 토론 Getting phone number보고도 How android get MSISDN

편집 :

TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
String imsi = mTelephonyMgr.getSubscriberId(); 

를 IMSI 번호를 얻으려면하지만 몇 가지 단말기는 대신 15의 6 자리 숫자를 반환합니다. 자, 사용할 수 있습니다,

이 게시물에 따르면 :추가 정보를 위해

String imei = android.os.SystemProperties.get(android.telephony.TelephonyProperties.PROPERTY_IMSI); 

This Question을보고 class SystemProperties

+0

예, 나는 너무 그것을 발견 ...하지만 내가 어떻게 Andoid를 사용하여 SIM의 IMSI는 검색합니까? 어떤 아이디어? – megazoid

관련 문제