본문 바로가기

Android

Android : 전화번호 가져오기

READ_PHONE_STATE permission을 획득한 후 아래 메소드를 추가하고 호출한다.

1
2
3
4
5
6
7
    private String getPhone() {
        TelephonyManager phoneMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
            return "";
        }
        return phoneMgr.getLine1Number();
    }
cs


추가:

한 고객이 전화번호를 가져오는 곳에서 null 이 떠서 진행할 수가 없다고 했다. 전화 권한을 동의해주지 않으면 앱이 꺼지기 때문에 권한 문제는 아니었다.


답은 스택오버플로우에서 찾음.

보통은 설정 - 휴대전화 정보 - (상태) - 내 전화번호에 자신의 전화번호가 쓰여 있다. 위 메소드는 그 전화번호를 가져오는 것인데, 그 분은 '내 전화번호' 칸이 알 수 없음으로 되어있다고 했다. 


오래된 핸드폰이나 심카드가 잘못되었거나 통신사 문제거나.. 기타 등등의 이유로 나타나는 현상이라고 하는데, 그 분은 갤럭시s8을 3일전에 구매하신 분이었다. 아무튼 앱 문제는 아니었다.