如何从uri获取联系人ID?

How to get contact id from uri?

我想获取具体的联系人 ID 和姓名。获得它的最佳方式是什么?

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

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

如果您有联系人 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);

}