본문 바로가기

APP DEVELOPER/Android 안드로이드

Android/안드로이드 - 휴대폰 전화번호 추출

예전에 휴대폰 SD카드 파일을 다루는 기능에서 런타임 퍼미션을 했었습니다.

아래의 기능들이 모두 사용자에게 허용 여부를 직접 물어보는 런타임 퍼미션이 필요합니다.

일정표, 카메라, 연락처, 위치정보(GPS,통신사), 마이크, 전화번호나 전화걸기, 각종센서, 문자 및 SD카드

접근 모두 런타인 퍼미션이 필요합니다.

 

안드로이드 메니페스트에서 잡아주는 

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

사용 퍼미션과는 별개로 사용자가 직접 한번은 승인해야 하는 런타임 퍼미션입니다.

 

android.permission-group.CALENDAR

android.permission-group.CAMERA

android.permission-group.CONTACTS

android.permission-group.LOCATION

android.permission-group.MICROPHONE

android.permission-group.PHONE

android.permission-group.SENSORS

android.permission-group.SMS

android.permission-group.STORAGE

 

전화번호 퍼미션, 안드로이드 런타임퍼미션

 

 

 

 

 

 

 

public class MainActivity extends AppCompatActivity {


    private String PhoneNum;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE}, 1);

    }

    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)
    {

        if(checkSelfPermission(Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED )
        {
             Log.v("DEBUG", "텔레폰 퍼미션이 허용됨");

            TelephonyManager telManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
            PhoneNum = telManager.getLine1Number();
            Log.v("DEBUG", "A"+PhoneNum+"B");

        }
   }

}