본문 바로가기

Android Studio (Kotlin)

contentResolver를 이용한 연락처 저장

https://developer.android.com/guide/topics/providers/contacts-provider

 

연락처 제공자  |  Android 개발자  |  Android Developers

연락처 제공자 연락처 제공자는 사람에 대한 데이터를 저장하는 기기의 중앙 리포지토리를 관리하는 강력하고 유연한 Android 구성요소입니다. 연락처 제공자는 기기의 주소록 애플리케이션에서

developer.android.com

이미지 출처 : 안드로이드 개발자 사이트

private fun addContacts(name: String, tel: String) {
    val p = ContentValues()
    p.put(ContactsContract.RawContacts.ACCOUNT_TYPE, "com.google")
    p.put(ContactsContract.RawContacts.ACCOUNT_NAME, "carrotgirl")
    val rowContact = ctx.contentResolver.insert(ContactsContract.RawContacts.CONTENT_URI, p)
    val rawContactId = ContentUris.parseId(rowContact!!)

    // 연락처의 이름 지정
    val value = ContentValues()
    value.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId)
    value.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
    value.put(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, name)
    ctx.contentResolver.insert(ContactsContract.Data.CONTENT_URI, value)

    // 연락처의 전화번호 지정
    val ppv = ContentValues()
    ppv.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId)
    ppv.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
    ppv.put(ContactsContract.CommonDataKinds.Phone.NUMBER, tel)
    ppv.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)
    ctx.contentResolver.insert(ContactsContract.Data.CONTENT_URI, ppv)

    Toast.makeText(ctx,"$name 연락처가 저장되었습니다.", Toast.LENGTH_SHORT).show()
}

'Android Studio (Kotlin)' 카테고리의 다른 글

Android Component (1)  (0) 2022.04.18
Tedpermission을 사용한 권한 설정 (Contacts 쓰기 권한 사용)  (0) 2022.04.14
Kotlin 기본 문법  (0) 2022.04.04
코틀린 컬렉션과 예외처리  (0) 2022.04.04
Kotlin 클래스  (0) 2022.04.03