Android
[Android] ContactContract 연락처 클래스
haehyun
2022. 1. 26. 18:34
728x90
*Contact : 연락, Contract : 계약
ContactContract
연락처 제공자(contacts provider)와 애플리케이션 간의 계약. (기존의 Contacts의 대체 API)
지원되는 URI 및 컬럼의 정의를 포함한다.
안드로이드 기본 앱 중 연락처 앱과 연동할 때 사용된다.
연락처와 관련된 확장 가능한 데이터베이스를 정의한다. 연락처 정보는 아래 3계층 데이터 모델에 저장된다.
계층 테이블 | 설명 |
Data | 전화번호나 이메일과 같은 모든 종류의 개인 데이터를 저장할 수 있다. 이 테이블에 저장할 수 있는 데이터 종류 집합은 개방형이다. 일반적인 종류의 집합이 미리 정의되어 있지만 모든 앱에서 자체적인 데이터 종류를 추가할 수 있습니다. |
RawContacts | 하나의 사용자 계정(ex: Gmail)과 연결된 데이터 집합을 나타낸다. |
Contacts | 동일인으로 추정되는 하나 이상의 RowContacts 집계를 나타낸다. RawContacts 테이블의 데이터가 변경되면 영향을 받는 집계 연락처가 필요에 따라 업데이트된다. |
연락처 화면을 인텐트로 실행할 때 매개변수로 ContactsContract에 정의된 상수를 사용한다.
val intent = Intent(Intent.ACTION_PICK, ContactsContract.CommonDataKinds.Phone.CONTENT_URI)
startActivityForResult(intent, 10)
연락처 화면에 나타낼 데이터 정보를 설정
- ContactsContract.Contacts.CONTENT_URIS : 모든 사람의 데이터
- ContactsContract.CommonDataKinds.Phone.CONTENT_URI : 전화번호가 있는 사람
- ContactsContract.CommonDataKinds.Email.CONTENT_URI : 이메일 정보가 있는 사람
중첩 클래스 | 설명 |
Contacts | Contacts 테이블에 대한 상수 모음 |
CommonDataKinds | Data 테이블에 저장된 일반 데이터 타입의 정의들에 대한 컨테이너 |
참고자료
- Android Developers ContactsContract, https://developer.android.com/reference/android/provider/ContactsContract
- Android Developers Contacts Provider, https://developer.android.com/guide/topics/providers/contacts-provider?hl=ko
728x90