如何从 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_ID
或 RAW_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();
我从我的应用程序(比如在 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_ID
或 RAW_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();