아래 코드를 이용하면 핸드폰의 전화번호를 가져올 수 있습니다.


TelephonyManager manager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);

String phoneNumber = manager.getLine1Number();


모토로이에서는 정상적으로 동작하지만 개인인증한 제 넥서스원에서는 제대로 동작하지 않네요. USIM에 MSISDN가 설정되지 않아서라고 하는데, 이 문제를 해결할 수 있는 방법이 있을까요? 통신사에 요청하면 USIM에 해당 정보를 넣어주는지도 모르겠네요.


그리고 전화번호는 항상 가져온다고 보장할 수 없다라는 얘기도 있네요. null을 반환하거나 잘못된 번호를 반환하는 경우도 있다고 합니다. USIM의 정보를 변경하지 않으면 다른 방법이 없는걸까요?


관련 게시글은:


http://stackoverflow.com/questions/2443524/getline1number-return-null-but-not-always