Android

[Android] ContactContract 연락처 클래스

haehyun 2022. 1. 26. 18:34

*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 테이블에 저장된 일반 데이터 타입의 정의들에 대한 컨테이너

 


참고자료