如何从uri获取联系人ID?

Posted

技术标签:

【中文标题】如何从uri获取联系人ID?【英文标题】:How to get contact id from uri? 【发布时间】:2015-11-02 18:40:39 【问题描述】:

我想获取特定的联系人 ID 和姓名。获得它的最佳方法是什么?

if (requestCode == mActions.REQUEST_PICK_CONTACT && resultCode == RESULT_OK) 
   Uri uriContact = (Uri)data.getData();
        String/int id = ???
        String name = ???
        String phoneNumber = ???
    
  

我只想获取我选择数据的联系人,而不是所有联系人。我该怎么做?

【问题讨论】:

uriContact.getPath() 包含什么? 看看这个答案***.com/a/17067006/2278598 【参考方案1】:

如果您有联系人 URI,这就是您获取联系人元数据的方式。

String id, name, phone, hasPhone;
int idx;
Cursor cursor = getContentResolver().query(contactUri, null, null, null,   null);
if (cursor.moveToFirst()) 
   idx = cursor.getColumnIndex(ContactsContract.Contacts._ID);
   id = cursor.getString(idx);

   idx = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
   name = cursor.getString(idx);

   idx = cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER);
   hasPhone = cursor.getString(idx);

【讨论】:

以上是关于如何从uri获取联系人ID?的主要内容,如果未能解决你的问题,请参考以下文章

从 Android 中的 URI 检索联系人电话号码

如何从 android (CallLog.Calls.CONTENT_URI) 表中获取联系人姓名?

从 Android 联系人数据库获取联系人 ID 未按预期工作

无法从 ContactsContract.Contacts.CONTENT_URI 获取已删除的联系人

使用 API 8 及更高版本获取用户/所有者个人资料联系人 URI 和用户图像

获取 Android 中的所有联系人数据 - 多个 URI