Android选取联系人获取电话和姓名

跳转联系人页面,选取联系人之后,返回联系人姓名以及联系人电话,没有电话号吗的不会返回,一个联系人有多个电话号码时会分多个返回

//跳转联系人Intent
var intent = Intent(Intent.ACTION_PICK, ContactsContract.CommonDataKinds.Phone.CONTENT_URI)

获取到联系人uri之后,通过contentResolver查询联系人姓名以及电话

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))
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容