기본 문자 앱을 바꾸면 무슨 일이 생기나
문자 관련 앱을 새로 쓰고 싶은데, 기본 문자 앱으로 지정하라는 안내를 보면 망설여지는 경우가 많습니다. "기본으로 바꾸면 기존 문자가 사라지지 않을까", "권한을 너무 많이 요구하는 게 아닐까" 같은 걱정 때문입니다. 안드로이드가 기본 문자 앱을 어떻게 다루는지 구조를 알면 이런 걱정 중 상당수는 근거가 없다는 것을 알 수 있습니다.
안드로이드의 원칙 — 기본 문자 앱은 한 번에 하나
안드로이드는 기본 문자 앱을 한 번에 하나만 허용합니다. 여러 문자 앱을 동시에 설치할 수는 있지만, 실제로 문자를 받고 시스템 저장소에 기록하는 역할은 그중 딱 하나에만 주어집니다. 이건 임의로 정한 제약이 아니라, 문자 메시지가 어느 한 곳에만 정확히 기록되도록 보장하기 위한 설계입니다.
기본 문자 앱이 되려면 무엇을 갖춰야 하나
아무 앱이나 기본 문자 앱으로 지정될 수 있는 것은 아닙니다. 안드로이드는 다음 세 가지 컴포넌트를 모두 구현한 앱만 기본 문자 앱 후보로 인정합니다.
| 컴포넌트 | 역할 |
|---|---|
SMS_DELIVER 브로드캐스트 리시버 | 수신된 SMS를 시스템으로부터 실제로 전달받는 창구 |
WAP_PUSH_DELIVER 브로드캐스트 리시버 | MMS(사진·멀티미디어 문자) 수신 알림을 전달받는 창구 |
SENDTO 액티비티 | 다른 앱(연락처 등)이 "이 번호로 문자 보내기"를 요청할 때 열리는 화면 |
RESPOND_VIA_MESSAGE 서비스 | 전화가 왔을 때 "문자로 답장" 기능이 호출하는 서비스 |
이 네 가지를 갖추지 못한 앱은 애초에 기본 문자 앱 선택 목록에 뜨지도 않습니다. 반대로 이를 모두 갖췄다는 것은, 안드로이드 시스템이 요구하는 최소한의 책임(수신 전달, 발신 경로, 통화 중 응답)을 다 이행할 수 있다는 뜻이기도 합니다.
바꾸면 실제로 무슨 일이 일어나나
권한이 함께 넘어갑니다
어떤 앱을 기본 문자 앱으로 지정하면, 문자 송수신에 필요한 권한들이 그 시점에 함께 부여됩니다. 이는 실제로 확인된 동작입니다 — 평소에는 개별적으로 하나씩 승인받아야 했을 권한도, 기본 문자 앱 지정이라는 하나의 동작 안에서 한꺼번에 처리됩니다. 안드로이드가 "이 앱을 기본 문자 앱으로 쓰겠다"는 사용자의 명시적인 선택을, 그 역할 수행에 필요한 권한 전체에 대한 동의로 간주하기 때문입니다.
저장·삭제 권한은 기본 문자 앱에만 있습니다
안드로이드에서는 기본 문자 앱만 문자 메시지를 저장하거나 삭제할 수 있습니다. 기본이 아닌 다른 문자 관련 앱들은 문자 내용을 읽어서 보여주는 것까지는 할 수 있어도, 시스템 저장소에 새 메시지를 써넣거나 기존 메시지를 지우는 동작은 할 수 없습니다. 이는 여러 앱이 동시에 같은 문자함을 건드려서 데이터가 꼬이는 것을 막기 위한 설계입니다.
기존 문자는 어떻게 되나 — 사라지지 않습니다
기본 문자 앱을 바꿔도 기존에 주고받은 문자는 사라지지 않습니다. 문자 메시지는 특정 앱 내부에 저장되는 것이 아니라, 안드로이드 시스템이 관리하는 공용 저장소(문자 provider)에 저장됩니다. 어떤 앱이든 기본 문자 앱이 되면 이 공용 저장소에 접근해 과거 대화 내역을 그대로 불러와 보여줄 수 있습니다. 즉 "문자는 앱이 아니라 운영체제가 갖고 있다"는 것이 핵심이고, 기본 문자 앱을 바꾸는 것은 이 저장소를 다루는 주체를 바꾸는 것일 뿐, 저장소 자체를 비우는 동작이 아닙니다.
되돌리는 방법
기본 문자 앱은 언제든 다시 바꿀 수 있습니다. 특정 앱에 영구적으로 묶이는 것이 아닙니다.
- 휴대폰 설정 앱을 엽니다.
- 앱 또는 기본 앱 메뉴로 들어갑니다.
- 문자 메시지 앱(또는 SMS 앱) 항목을 찾습니다.
- 목록에서 원래 쓰던 앱(제조사 기본 메시지 앱 등)을 다시 선택합니다.
원래 쓰던 앱으로 되돌려도 마찬가지로 문자 원문은 시스템 저장소에 그대로 있으므로, 대화 내역이 끊기지 않고 이어서 보입니다.
왜 이런 구조로 설계됐나
이 구조를 이해하면 앞서 설명한 규칙들이 왜 그렇게 정해졌는지 자연스럽게 이해됩니다. 만약 여러 앱이 동시에 문자를 저장·삭제할 수 있었다면, 한 앱에서 지운 메시지가 다른 앱에는 남아 있거나, 두 앱이 같은 메시지를 서로 다르게 기록해 대화 순서가 꼬이는 문제가 생길 수 있습니다. "쓰기 권한은 기본 문자 앱 하나에만" 이라는 원칙은 이런 충돌을 애초에 막기 위한 설계입니다. 권한이 한꺼번에 넘어가는 것도 같은 맥락입니다 — 기본 문자 앱은 수신·발신·통화 중 응답까지 문자와 관련된 거의 모든 책임을 떠안는 역할이므로, 그 역할을 맡기는 순간 필요한 권한 일체를 함께 위임하는 편이 사용자 입장에서도 매번 개별 승인을 반복하는 것보다 자연스럽습니다.
자주 헷갈리는 부분
기본 문자 앱이 아닌 앱도 문자를 볼 수 있나요?
네, 가능합니다. 읽기 권한은 기본 문자 앱이 아니어도 사용자가 허용하면 얻을 수 있습니다. 다만 그 앱이 새 메시지를 시스템 저장소에 써넣거나(수신 기록), 기존 메시지를 지우는 동작은 기본 문자 앱만 할 수 있습니다. "보기 전용 부가 기능 앱"과 "기본 문자 앱"의 권한 범위가 다르다는 점이 핵심입니다.
기본 문자 앱을 여러 번 왔다 갔다 해도 괜찮은가요?
괜찮습니다. 앞서 설명했듯 문자 원문은 특정 앱이 아니라 시스템 공용 저장소에 있으므로, 기본 문자 앱을 이 앱에서 저 앱으로, 다시 원래 앱으로 옮겨도 대화 내역 자체는 매번 그대로 이어서 보입니다. 다만 앱을 바꿀 때마다 필요한 권한을 다시 확인하는 절차는 거칠 수 있습니다.
요약
- 기본 문자 앱은 한 번에 하나만 지정할 수 있습니다.
- 기본 문자 앱이 되려면
SMS_DELIVER·WAP_PUSH_DELIVER리시버,SENDTO액티비티,RESPOND_VIA_MESSAGE서비스를 모두 갖춰야 합니다. - 기본 문자 앱으로 지정하는 순간 문자 관련 권한이 함께 부여됩니다.
- 문자를 저장·삭제할 수 있는 것은 기본 문자 앱뿐이고, 나머지 앱은 읽기만 가능합니다.
- 기존 문자는 시스템 저장소에 있으므로 앱을 바꿔도 사라지지 않으며, 언제든 되돌릴 수 있습니다.