gpt4 book ai didi

android - 如何从联系人列表中获取姓名

转载 作者:行者123 更新时间:2023-11-29 18:25:27 25 4
gpt4 key购买 nike

我可以从联系人列表中获取用户电话号码,但我还需要带有号码的姓名,

我知道如果我使用自定义适配器,那么我可以获得姓名和号码,但我想使用默认的联系人选择器。

这是我的代码。

private fun launchMultiplePhonePicker() {
val phonebookIntent = Intent("intent.action.INTERACTION_TOPMENU")
phonebookIntent.putExtra("additional", "phone-multi")
phonebookIntent.putExtra("maxRecipientCount", 20)
phonebookIntent.putExtra("FromMMS", true)
startActivityForResult(phonebookIntent, 110)
}

这确实工作正常,但只返回电话号码,而不是 onActivityResult 中的联系人姓名。

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {

val bundle = data?.extras
val result = bundle?.getString("result")
val contacts = bundle?.getStringArrayList("result")
}

编辑:我发现 intent.action.INTERACTION_TOPMENU 可能无法在所有设备上工作,所以我使用了以下方法,它给我名称和数字,但不允许我选择多个联系人。

val intent = Intent(Intent.ACTION_PICK, ContactsContract.CommonDataKinds.Phone.CONTENT_URI)
startActivityForResult(intent, 10101)

最佳答案

我获取联系人的简单解决方案,可能会对您有所帮助

保存提取值的数据类:

data class ContactModel(val phoneNumber: String, val displayName: String)

获取联系人并映射到模型

        val result = arrayListOf<ContactModel>()
val cursor.context.contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, ContactsContract.Contacts.SORT_KEY_PRIMARY + " ASC")

cursor?.let {
val nameIndex = it.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)
val phoneIndex = it.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)

while (it.moveToNext()) {
val name = cursor.getString(nameIndex)
val phone = cursor.getString(phoneIndex)
var num = phone
.replace(" ", "")
.replace("-", "")
.replace("(", "")
.replace(")", "")

val contactModel = ContactModel(num, name)

//Prevents duplicated contacts on some devices
if (it.position != 0) {
if (contactModel != result[result.size - 1]) {
result.add(contactModel)
}
} else {
result.add(contactModel)
}

}
}

关于android - 如何从联系人列表中获取姓名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59282388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com