【发布时间】:2020-04-04 12:49:47
【问题描述】:
我可以从联系人列表中获取用户电话号码,但我还需要带有号码的姓名,
我知道如果我使用自定义适配器,那么我可以同时获取姓名和号码,但我想使用默认的联系人选择器。
这是我的代码。
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)
【问题讨论】:
标签: android android-permissions android-contacts