Android選取聯(lián)系人獲取電話和姓名

跳轉(zhuǎn)聯(lián)系人頁(yè)面,選取聯(lián)系人之后,返回聯(lián)系人姓名以及聯(lián)系人電話,沒(méi)有電話號(hào)嗎的不會(huì)返回,一個(gè)聯(lián)系人有多個(gè)電話號(hào)碼時(shí)會(huì)分多個(gè)返回

//跳轉(zhuǎn)聯(lián)系人Intent
var intent = Intent(Intent.ACTION_PICK, ContactsContract.CommonDataKinds.Phone.CONTENT_URI)

獲取到聯(lián)系人uri之后,通過(guò)contentResolver查詢聯(lián)系人姓名以及電話

val contactUri = result.data?.data
contactUri?.let {
    contentResolver.query(contactUri, null, null, null, null).use { cursor ->
        if (cursor?.moveToFirst() == true) {
            var number = ""
            var name = ""
            val numberIndex =
                cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)

            if (numberIndex != -1) {
                number = cursor.getString(numberIndex)
                if (number.isNotEmpty()) {
                    binding.etPhone.setText(number.replace(" ", ""))
                }
            }

            val nameIndex =
                cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)
            if (nameIndex != -1) {
                name = cursor.getString(nameIndex)
            }
            Log.e("TAG", "$name:$number")
        }
    }
}

完整代碼:

registerForActivityResult(
    ActivityResultContracts.StartActivityForResult(), activityResultRegistry
) { result ->
    val contactUri = result.data?.data
    contactUri?.let {
        contentResolver.query(contactUri, null, null, null, null).use { cursor ->
            if (cursor?.moveToFirst() == true) {
                var number = ""
                var name = ""
                val numberIndex =
                    cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)

                if (numberIndex != -1) {
                    number = cursor.getString(numberIndex)
                    if (number.isNotEmpty()) {
                        binding.etPhone.setText(number.replace(" ", ""))
                    }
                }

                val nameIndex =
                    cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)
                if (nameIndex != -1) {
                    name = cursor.getString(nameIndex)
                }
                Log.e("TAG", "$name:$number")
            }
        }
    }
}.launch(Intent(Intent.ACTION_PICK, ContactsContract.CommonDataKinds.Phone.CONTENT_URI))
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容