[android] 연락처 접근 권한

안드로이드 앱을 개발할 때, 사용자의 연락처에 접근해야 하는 경우가 있습니다. 이때 앱이 사용자의 연락처에 접근할 수 있도록 권한을 요청해야 합니다. 연락처 접근 권한을 요청하는 방법과 관련된 내용을 다루어 보겠습니다.

1. 연락처 접근 권한 추가하기

AndroidManifest.xml 파일에서 다음과 같이 READ_CONTACTS 권한을 추가해야 합니다.

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

위의 코드를 추가하면 앱이 보호된 연락처 데이터에 접근할 수 있는 권한을 요청하게 됩니다.

2. 권한 요청하기

안드로이드 6.0 (API 레벨 23) 이상에서는 사용자에게 앱이 실행되는 동안에 요청하는 권한을 사용자가 수락해야 합니다. 따라서 앱이 실행될 때 필요한 권한을 요청하는 코드를 추가해야 합니다.

public class MainActivity extends AppCompatActivity {
    private static final int REQUEST_READ_CONTACTS = 1;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_CONTACTS}, REQUEST_READ_CONTACTS);
        }
    }
    
    @Override
    public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
        if (requestCode == REQUEST_READ_CONTACTS) {
            // 권한 요청에 대한 응답 처리
            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                // 권한이 허용된 경우의 동작 처리
            } else {
                // 권한이 거부된 경우의 동작 처리
            }
            return;
        }
    }
}

위의 코드에서 앱이 실행될 때 READ_CONTACTS 권한이 허용되지 않았다면 사용자에게 권한 요청 다이얼로그를 표시하게 됩니다.

이제, 연락처에 접근할 수 있는 권한을 요청하는 방법에 대해 알아봤습니다. 안드로이드 앱을 개발할 때, 사용자의 개인정보를 처리하는 경우에는 권한 요청 및 관련 법률에 대해 충분히 고려해야 합니다.

참고 자료