我能够从联系人列表中获取用户电话号码,但我也需要带有电话号码的姓名,
我知道如果我使用自定义适配器,那么我可以同时获得姓名和电话号码,但是我想使用默认的联系人选择器。
这是我的代码。
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)