안드로이드 앱의 '연락처 직접 저장' 권한이 사라진다 — 2027년 버전 타깃부터 WRITE_CONTACTS 무효, 내 앱은 뭘 고쳐야 하나?
명함·주문 정보를 '연락처에 저장' 버튼으로 넣어 주던 앱이라면 해당됩니다. 당장 깨지진 않지만, 다음 안드로이드 버전을 타깃하는 순간 직접 쓰기가 막힙니다.
무슨 일인가
구글이 10월 21일 안드로이드 개발자 블로그에 올린 예고입니다. 다음 안드로이드 메이저 버전(2027년 예정)을 타깃하는 앱부터는 WRITE_CONTACTS 권한이 있어도 연락처 데이터베이스에 직접 쓰는 호출이 거부됩니다. ContactsContract.RawContacts.CONTENT_URI·ContactsContract.Data.CONTENT_URI에 insert하거나 applyBatch로 묶어 넣던 코드가 전부 해당됩니다. 대신 시스템 연락처 편집 화면을 띄우는 인텐트 — ACTION_INSERT, ACTION_EDIT, ACTION_INSERT_OR_EDIT — 를 쓰라는 것이고, 이 방식은 권한이 필요 없습니다. 사진 미리 채우기용 EXTRA_PHOTO_URI도 새 버전에서 추가됩니다.
구글이 밝힌 이유는 두 가지입니다. WRITE_CONTACTS가 사용자 개입 없이 백그라운드에서 기기 전체 연락처를 고칠 수 있는 너무 넓은 권한이라는 점, 그리고 제조사마다 편집 화면 동작이 달라(사진 누락, 뒤로 가기 시 저장 등) 개발자들이 직접 쓰기로 우회해 왔다는 점입니다. 새 버전에서는 편집 화면 동작을 표준화합니다. 백그라운드 동기화가 꼭 필요한 앱(전화·연락처 관리 앱, 스팸 식별, 기업 CRM 양방향 동기화, 백업·기기 이전)을 위해 MANAGE_CONTACTS라는 특수 앱 접근 권한이 안드로이드 17 QPR2부터 생기고, 이를 쓰는 앱은 플레이 콘솔에 사용 신고를 해야 합니다. 기존 타깃 SDK를 유지하는 앱은 당장은 그대로 동작합니다.
예외 대상이 될 수 있음
- 연락처 앱·전화 앱 대체재
- 스팸·발신자 식별로 연락처를 대량 갱신
- 기업 CRM·클라우드 양방향 백그라운드 동기화
- 백업·복원·기기 이전, 연락처별 벨소리 설정
예외 아님 → 인텐트로 바꿔야
- 채팅·명함·주문에서 '연락처에 저장'
- 기존 연락처에 번호 추가
- 연락처 고르기, 통화·메시지 버튼 추가
- 우리 디자인의 편집 화면(그것만으론 예외 아님)
내 사업·앱에 무슨 의미
- 앱 운영자 — 고객·회원 정보를 '연락처에 저장'해 주는 기능이 있다면, 다음 타깃 SDK 올릴 때(플레이는 매년 타깃 API를 올리라고 요구합니다) 그 기능이 조용히 실패합니다. 외주 개발사에 "WRITE_CONTACTS 쓰는 데가 있나"부터 물어보세요.
- 쇼핑몰·매장 앱 — 주문자 번호를 사장님 폰 연락처에 넣어 주던 편의 기능은 시스템 편집 화면을 거치는 방식으로 바뀝니다. 한 번 더 탭하는 흐름이 되니 안내 문구도 손봐야 합니다.
- 개발자 — 2027년 타깃 변경 전까지 시간은 있지만, 삭제는 인텐트가 아예 없고(사용자가 연락처 앱에서 직접), 커스텀 MIME 타입 행은 조용히 무시됩니다. 이 두 가지가 설계 변경 포인트입니다.
지금 해볼 것
WRITE_CONTACTS, RawContacts.CONTENT_URI, Data.CONTENT_URI, applyBatch(ContactsContract.AUTHORITY를 찾아 쓰는 곳 목록 만들기.