[android] 안드로이드 권한과 연락처 접근

안드로이드 앱을 개발할 때 중요한 부분 중 하나는 사용자의 민감한 정보에 접근해야 할 때 권한을 요청하는 것입니다. 이 중 연락처에 접근하기 위해서는 사용자로부터 명시적으로 허락을 받아야 합니다.

권한 요청

안드로이드 앱에서 연락처에 접근하려면 AndroidManifest.xml 파일에 해당 권한을 요청해야 합니다. 아래는 연락처 읽기 권한을 요청하는 예제 코드입니다.

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

권한 확인

앱이 실행될 때, 연락처에 접근하기 위한 권한이 허용되었는지 확인해야 합니다. 아래는 권한이 허용되었는지 확인하는 Kotlin 코드 예제입니다.

if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
    // 연락처 읽기 권한이 허용되지 않았을 때 권한 요청
    ActivityCompat.requestPermissions(this,
        arrayOf(Manifest.permission.READ_CONTACTS),
        MY_PERMISSIONS_REQUEST_READ_CONTACTS
    )
} else {
    // 연락처 읽기 권한이 이미 허용되었을 때
    // 연락처에 접근하여 작업 수행
}

권한 요청 결과 처리

사용자가 권한 요청 다이얼로그에서 허용 또는 거부를 선택하면 onRequestPermissionsResult 메서드가 호출되어 결과를 처리할 수 있습니다.

override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
    when (requestCode) {
        MY_PERMISSIONS_REQUEST_READ_CONTACTS -> {
            if ((grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED)) {
                // 권한이 허용되었을 때 연락처에 접근하여 작업 수행
            } else {
                // 권한이 거부되었을 때 사용자에게 메시지 표시하거나 앱을 종료할 수 있음
            }
            return
        }
    }
}

앱이 연락처 접근 권한을 올바르게 처리하면 사용자의 개인정보를 보호할 수 있고, 앱의 신뢰도를 높일 수 있습니다. 따라서 권한 요청과 처리에 신중함을 기울이는 것이 중요합니다.

참고 자료: 안드로이드 공식 문서 - 권한 요청