0

使用 ContactPicker 获取联系人的电话号码和 DISPLAY NAME 似乎很简单 - 使用类似这样的东西

Intent intent = new Intent(Intent.ACTION_PICK, 
ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
startActivityForResult(intent, REQUEST_PICK_CONTACT);

但是,有了这个你就可以得到电话号码和显示名称,但是一旦我得到号码,我似乎找不到任何理智的方法来获取姓氏/名字。联系人本身的 ID 似乎不适用于 startActivityForResult 返回的内容。我想您可以根据显示名称或号码重新查询以查找联系人,但这似乎很尴尬......我只是在想有一个更直接的方法,但这里可能是错误的。

4

1 回答 1

0

联系人选择器返回请求的联系人的 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;
  }
}
于 2013-06-02T22:40:11.250 回答