애플리케이션에서 핸드폰 번호를 가져오기 위해서 TelephonyManager의 getLine1Number()를 사용하면 된다.

하지만 AndroidMenifest에서 uses-permission을 다음과 같이 적고 

<uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />

permission도 다음과 같이 체크했음에도 불구하고 앱이 정상적으로 작동하지 않았다.

if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED 
	|| ContextCompat.checkSelfPermission(this, android.Manifest.permission.READ_PHONE_NUMBERS) != PackageManager.PERMISSION_GRANTED) {
    	ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.READ_PHONE_STATE,
        android.Manifest.permission.READ_PHONE_NUMBERS
    }

 

이럴 땐, @SuppressLint("MissingPermission")을 다음과 같이 사용하면 된다.

@SuppressLint("MissingPermission") String mobile = TelephonyManager.getLine1Number(); //전화번호
if (mobile.startsWith("+82"))
	mobile = mobile.replace("+82", "0");

 

+ Recent posts