Android 연락처 권한 변경: MANAGE_CONTACTS 마이그레이션 가이드
차기 Android에서는 연락처 직접 쓰기가 제한됩니다. 연락처 Intent, Contact Picker, People Directory와 MANAGE_CONTACTS의 사용 기준을 설명합니다.

이 글 요약
This article covers Android 연락처 권한 변경: MANAGE_CONTACTS 마이그레이션 가이드. 차기 Android에서는 연락처 직접 쓰기가 제한됩니다. 연락처 Intent, Contact Picker, People Directory와 MANAGE_CONTACTS의 사용 기준을 설명합니다.
핵심
- Published: October 31, 2026
- Category: Android Development
- Tags: Android permissions, contacts, Android development, Google Play policy, privacy
- Views: 105
- Reading time: ~11 min read
"차기 Android에서는 연락처 직접 쓰기가 제한됩니다. 연락처 Intent, Contact Picker, People Directory와 MANAGE_CONTACTS의 사용 기준을 설명합니다."

Android의 연락처 접근 방식이 바뀝니다. 앱 개발, Google Play 정책 검토, 사용자가 보는 개인정보 선택에 모두 영향을 줄 수 있는 변화입니다. Google은 2026년 10월 21일 차기 Android를 대상으로 하는 앱이 기본적으로 WRITE_CONTACTS로 연락처를 직접 쓸 수 없게 된다고 발표했습니다. 대부분의 앱은 표준 연락처 Intent나 더 좁은 범위의 시스템 기능으로 이동해야 합니다.
이 변화가 모든 연락처 기능을 금지한다는 뜻은 아닙니다. 기존 앱이 하루아침에 작동하지 않는다는 의미도 아닙니다. 핵심은 백그라운드에서 주소록을 넓게 수정할 수 있는 권한에서 사용자가 시작하고 확인하는 작업으로 경계를 옮기는 것입니다. 연락처 추가, 연락처 편집, 사용자 선택, 앱 내부 통화와 메시지 기능을 시스템 디렉터리에 공개하는 작업을 각각 구분하게 됩니다.
핵심 요약: 대부분의 앱은 연락처를 직접 쓰지 않아야 한다
사용자가 명함을 저장하거나 전화번호를 추가하거나 연락처 한 개를 편집하려는 경우 ACTION_INSERT, ACTION_EDIT, ACTION_INSERT_OR_EDIT 같은 표준 Intent를 사용하세요. 차기 Android 기기에서는 이 흐름이 시스템 편집기를 열고 광범위한 쓰기 권한을 요구하지 않습니다.
사용자가 한 사람을 선택하기만 하면 Contact Picker를 사용합니다. 통화나 메시지 앱이 “이 앱으로 통화” 같은 기능을 표시하려면 주소록에 임의의 행을 추가하는 대신 People Directory를 검토하세요. MANAGE_CONTACTS는 전용 연락처 관리자, 다이얼러 대체 앱, 백업 도구처럼 실제로 넓은 직접 관리가 필요한 제품에만 남겨야 합니다. 자세한 내용은 Android Developers 공식 발표와 일반 Intent 문서를 확인하세요.
Google이 광범위한 연락처 쓰기를 바꾸는 이유
기존 방식에서는 연락처 하나를 저장하려는 앱과 전체 주소록을 계속 관리하는 앱이 거의 같은 권한을 요청했습니다. WRITE_CONTACTS는 한 번의 저장에도 사용할 수 있지만 백그라운드 대량 수정도 가능하게 합니다. 사용자는 권한 창만 보고 앱이 필요한 범위를 판단하기 어렵습니다.
새 방식은 사용자의 즉시 행동을 중심으로 합니다. 시스템 연락처 편집기를 열면 저장할 필드, 대상 계정, 최종 확인을 사용자가 볼 수 있습니다. 앱에 무제한 쓰기 권한을 주지 않으면서 마지막 결정을 사용자에게 남기는 구조입니다. Android의 다른 개인정보 보호 기능처럼 작업에 필요한 최소한의 능력만 사용하는 방식입니다.
Google은 기기별 동작 차이도 줄입니다. 과거에는 사진 필드가 사라지거나 새 연락처 버튼이 찾기 어려웠고 뒤로 가기 동작도 달랐습니다. 차기 Android에서는 추가와 편집 동작이 표준화되어 테스트가 쉬워집니다.
개발자가 선택할 마이그레이션 경로
Intent로 연락처 한 개를 추가하거나 편집하기
명함 스캐너, 채팅 앱, 주문 앱, 행사 앱은 보통 광범위한 권한이 필요하지 않습니다. 새 연락처에는 ACTION_INSERT, 기존 항목에 전화나 이메일을 더할 수 있으면 ACTION_INSERT_OR_EDIT, 명확한 연락처 URI를 편집하면 ACTION_EDIT를 사용합니다.
Intent 생성만 확인하지 말고 계정 선택, 사진, 전화번호, 이메일, 취소, 화면 회전, 저장 결과까지 테스트하세요. 표준 ContactsContract.CommonDataKinds 밖의 사용자 정의 MIME 유형은 편집기에서 무시될 수 있으므로 전달되지 않는 필드에 대한 대체 처리도 준비해야 합니다.
Contact Picker로 사용자가 선택하게 하기
사용자가 고른 한 사람만 필요하다면 주소록 전체를 읽는 것은 과도합니다. Android 17부터 제공되는 Contact Picker는 광범위한 권한 없이 사용자가 연락처를 고르게 합니다. 초대, 결제, 여행 공유, 카풀 같은 기능은 전체 데이터베이스보다 선택된 사람 한 명만 필요한 경우가 많습니다.
이 방식은 개인정보뿐 아니라 경험도 개선합니다. 사용자가 선택하는 순간 앱이 왜 연락처 정보를 필요로 하는지 설명할 수 있어, 기능을 이해하기 전에 광범위한 권한을 요구하는 것보다 신뢰를 얻기 쉽습니다.
People Directory로 앱 내부 도달 방법 공개하기
통화와 메시지 앱은 “이 앱으로 통화” 같은 항목을 보여주기 위해 주소록에 추가 행을 쓰기도 합니다. Google은 2026년 4분기 Android QPR2에서 People Directory를 도입할 예정입니다. 앱은 개인 주소록을 수정하지 않고 앱 안에서 서로 연락하는 방법을 공개할 수 있습니다.
연락처 앱은 개인 주소록을 관리하고 디렉터리는 앱 기능을 설명하는 식으로 책임이 나뉩니다. QPR2의 제공 여부를 확인하고 지원 기기에서 통합을 테스트한 뒤 기존 호환 코드를 제거하세요.
MANAGE_CONTACTS가 필요한 경우
MANAGE_CONTACTS는 일반 런타임 대화상자가 아니라 특별 앱 접근 권한입니다. 사용자는 설정 > 특별한 앱 액세스 > 연락처 관리에서 켤 수 있습니다. 자격을 갖춘 앱에는 읽기 권한도 포함되므로 READ_CONTACTS를 반드시 함께 요청할 필요는 없습니다.
전용 연락처 관리자, 다이얼러 대체 앱, 주소록을 대량 갱신하는 발신자 표시나 스팸 방지 앱, 기업 동기화, 일괄 백업과 복원, 기기 간 전송 앱이 대상이 될 수 있습니다. 단지 자체 편집 화면을 유지하고 싶다는 이유만으로는 충분하지 않습니다.
마이그레이션 체크리스트
WRITE_CONTACTS,ContentResolver직접 쓰기, 사용자 정의 연락처 행, Play 선언을 검색합니다.- 기능을 추가, 편집, 선택, 앱 내부 도달성, 광범위 관리로 분류합니다.
- 단일 연락처 작업을 표준 Intent로 바꿉니다.
- 선택만 필요하면 Contact Picker를 사용합니다.
- 앱 내 통화와 메시지에는 People Directory를 검토합니다.
- 핵심 기능이 넓은 관리일 때만
MANAGE_CONTACTS를 유지하고 근거를 기록합니다. - 새 Android와 이전 버전에서 취소, 불완전한 데이터, 권한 경계를 테스트합니다.
- Manifest, Play 선언, 개인정보 처리방침, 앱 설명을 일치시킵니다.
사용자도 권한의 이유를 설명하고 사용자가 직접 시작하는 흐름을 제공하는 앱을 우선할 수 있습니다. Android 도구를 찾는다면 BTTC의 Android 소프트웨어 디렉터리에서 공식 출처, 권한, 버전, 개인정보 정보를 비교해 보세요.
데이터 처리에서 확인할 점
연락처 Intent에 전달하는 정보는 사용자가 이해할 수 있는 최소 범위로 제한해야 합니다. 이름, 전화번호, 이메일처럼 현재 작업에 직접 필요한 값만 넣고, 앱 내부 식별자나 불필요한 메모를 자동으로 복사하지 않는 것이 좋습니다. 사용자가 다른 계정을 선택했을 때 앱이 저장 위치를 잘못 단정하지 않도록 시스템 화면에서 돌아온 뒤의 상태와 결과를 확인하세요.
취소를 오류로 처리하지 않는 것도 중요합니다. 시스템 편집기에서 사용자가 뒤로 나왔다고 해서 앱이 같은 작업을 반복하거나 정보를 다시 자동 저장해서는 안 됩니다. 저장 여부를 확실히 알 수 없다면 상태를 설명하고 사용자가 명시적으로 다시 시작하도록 하는 편이 안전합니다.
테스트와 Play 검토 준비
마이그레이션을 에뮬레이터 하나로만 검증하지 마세요. 여러 계정, 연락처가 비어 있는 기기, 사진이 있는 연락처, 업무 프로필, 오프라인 상태, 다양한 화면 크기를 함께 테스트해야 합니다. 제조사별 연락처 앱이 다른 경우에도 필드가 사라지지 않고 반환 상태를 올바르게 처리하는지 확인합니다.
Play 정책 선언은 실제 구현과 일치해야 합니다. Manifest에 남은 예전 권한, 사용하지 않는 동기화 코드, “모든 연락처를 관리한다”는 설명은 실제 사용자 흐름과 충돌할 수 있습니다. 코드를 교체한 뒤 권한을 제거하고 개인정보 처리방침, 스토어 설명, 지원 문서의 용어도 같은 기준으로 업데이트하세요.
팀이 정해야 할 경계
에이전트나 자동화 도구에 마이그레이션 작업을 맡기더라도 권한을 추가하거나 삭제하는 변경은 사람의 검토 대상으로 남겨야 합니다. 자동 도구에는 검색, 테스트 케이스 작성, Intent 전환 후보 제시를 맡길 수 있지만 Manifest 권한이나 Play 선언을 바꿀 수 있는지는 저장소 규칙으로 제한합니다. 변경 diff, 테스트 결과, target SDK를 기록한 뒤 출시 후보를 만드는 방식이 추후 원인을 추적하기 쉽습니다.
자주 묻는 질문
모든 Android 앱에 즉시 적용되나요?
아닙니다. 직접 쓰기 제한은 차기 Android를 대상으로 하는 앱에 적용됩니다. 이전 target을 사용하는 앱은 현재 동작을 유지합니다.
Intent로 연락처를 삭제할 수 있나요?
아닙니다. 표준 삭제 Intent는 없습니다. 일반적으로 사용자가 연락처 앱에서 삭제하며, 정당한 MANAGE_CONTACTS 권한이 있는 앱만 직접 삭제할 수 있습니다.
MANAGE_CONTACTS가 READ_CONTACTS를 대체하나요?
자격을 갖춘 앱에는 읽기가 포함되지만, 읽기만 하고 수정하지 않는 앱은 여전히 READ_CONTACTS가 필요할 수 있습니다.
자체 연락처 편집 화면을 유지할 수 있나요?
제품의 핵심이 광범위한 연락처 관리인 경우에만 가능합니다. 자체 UI를 유지하고 싶다는 이유만으로는 충분하지 않습니다.
결론
Android 연락처 접근은 사용자가 확인하는 명확한 흐름으로 이동합니다. 대부분의 앱은 저장과 편집에 표준 Intent, 선택에 Contact Picker, 앱 내부 통화와 메시지에는 People Directory를 사용하면 됩니다. MANAGE_CONTACTS는 실제로 주소록을 넓게 관리하는 제품에만 남기고 target SDK 변경을 출시 전에 검증하세요.

