如何从 CONTENT URI 获取联系人

How to get the contact from the CONTENT URI

我从我的应用程序(比如在 whatsapp 中)向我的联系人添加了一个自定义联系人。当我单击自定义原始文件时,它会打开我的应用程序。在我的查看 activity 中,我检查操作并从 getIntent().getDataString() 获取内容 URI。它给了我这个 - content://com.android.contacts/data/10399。 现在我想从这个 URI 中获取联系方式。但是当我使用以下代码检查我的联系人列表时。

void checkContacts(Context context) {
    Cursor cursor = context.getContentResolver().query(
            ContactsContract.Data.CONTENT_URI,
            null,
            null, null, null);
    if (cursor != null) {
        Log.e(TAG, String.valueOf(cursor.getCount()));
        try {
            while (cursor.moveToNext()) {
                Log.e(TAG, cursor.getString(cursor
                        .getColumnIndexOrThrow(ContactsContract.Data.CONTACT_ID)));
                Log.e(TAG, "** " + cursor.getString(cursor
                        .getColumnIndexOrThrow(ContactsContract.Data.RAW_CONTACT_ID)));
            }
        } finally {
            cursor.close();
        }
    }
}

但我找不到任何与 10399 相关的 CONTACT_IDRAW_CONTACT_ID。 那么我如何从这个 URI 中获取联系方式呢? 我不想得到所有的联系人。我想获取URI相关的具体联系人

尝试这样的事情

Uri uri = data.getData();
String[] projection = {
    ContactsContract.CommonDataKinds.Phone.NUMBER, 
    ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME 
};

Cursor cursor = getApplicationContext().getContentResolver().query(uri, projection,
    null, null, null);
cursor.moveToFirst();

int numberColumnIndex = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
String number = cursor.getString(numberColumnIndex);

int nameColumnIndex = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);
String name = cursor.getString(nameColumnIndex);

cursor.close();