Android-使用ContactPicker获取号码和姓氏?
使用ContactPicker获取联系人的电话号码和显示名称似乎很简单-使用类似的方式Android-使用ContactPicker获取号码和姓氏?,android,contacts,Android,Contacts,使用ContactPicker获取联系人的电话号码和显示名称似乎很简单-使用类似的方式 Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.CommonDataKinds.Phone.CONTENT_URI); startActivityForResult(intent, REQUEST_PICK_CONTACT); 然而,通过这个你可以得到电话号码和显示名,但我似乎找不到任何合理的方法来获得我的姓/名,一旦我得到了
Intent intent = new Intent(Intent.ACTION_PICK,
ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
startActivityForResult(intent, REQUEST_PICK_CONTACT);
然而,通过这个你可以得到电话号码和显示名,但我似乎找不到任何合理的方法来获得我的姓/名,一旦我得到了号码。从startActivityForResult返回的内容似乎无法使用联系人本身的ID。我想你可以根据显示的姓名或号码重新查询以找到联系人,但这似乎很尴尬。。。我只是想有一种更简单的方法,但这里可能是错误的。联系人选择器为请求的联系人返回一个URI。你需要重新查询这个URI,你可以得到你想要的任何东西
@Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
super.onActivityResult(reqCode, resultCode, data);
switch (reqCode) {
case (PICK_CONTACT) :
if (resultCode == Activity.RESULT_OK) {
Uri contactData = data.getData();
Cursor c = getContentResolver().query(contactData, null, null, null, null);
if (c.moveToFirst()) {
// TODO Whatever you want to do with the selected contact
}
}
break;
}
}
谢谢-我假设它会返回一些特殊的电话号码,因为它的目的是启动phone.CONTENT\u URI。在本例中,选择器显示每个联系人的所有号码(并且仅显示具有电话号码的联系人),我假设data.getData()调用中的ID与电话号码关联,而不是联系人ID。如果您使用更通用的contacts.CONTENT_URI来代替此目的,选择器将显示所有联系人,不管他们是否有号码(这不是我感兴趣的)。我会根据你所说的重新检查这里的一些东西。