如何从 ContactsContract.Contacts 获取联系人的 LOOKUP_KEY?
How to get LOOKUP_KEY of a Contact from ContactsContract.Contacts?
我必须 select 来自 android 设备联系人列表的联系人。
使用以下代码,我检索了一个 activity,其中包含设备上的联系人列表:
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, ADD_CONTACT_REQUEST_CODE);
选择联系人后,如何获取selected联系人的LOOKUP_KEY?
而不是检索 content://com.android.contacts/contacts/lookup/0r2-334B29432D314D2D29/2
,我需要得到 0r2-334B29432D314D2D29
,即 LOOKUP_KEY
到目前为止,我只能检索完整的 Uri
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == Activity.RESULT_OK){
switch (requestCode){
case ADD_CONTACT_REQUEST_CODE:
Uri contactUri = data.getData();
String contactUriString = contactUri.toString();
break;
}
}
}
提前致谢
有一个简单的 API 辅助方法 - getLookupUri:
Uri contactUri = data.getData();
ContentResolver cr = getContentResolver();
Uri lookupUri = ContactsContract.Contacts.getLookupUri(cr, contactUri);
更新
要获得 LOOKUP_KEY,请执行以下操作:
String projection = String[] { Contacts.LOOKUP_KEY };
Cursor cursor = getContentResolver().query(contactUri, projection, null, null, null);
if (cursor != null && cursor.moveToNext()) {
String lookupKey = cursor.getString(0);
Log.d(TAG, "key = " + lookupKey);
cursor.close();
}
我必须 select 来自 android 设备联系人列表的联系人。
使用以下代码,我检索了一个 activity,其中包含设备上的联系人列表:
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, ADD_CONTACT_REQUEST_CODE);
选择联系人后,如何获取selected联系人的LOOKUP_KEY?
而不是检索 content://com.android.contacts/contacts/lookup/0r2-334B29432D314D2D29/2
,我需要得到 0r2-334B29432D314D2D29
,即 LOOKUP_KEY
到目前为止,我只能检索完整的 Uri
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == Activity.RESULT_OK){
switch (requestCode){
case ADD_CONTACT_REQUEST_CODE:
Uri contactUri = data.getData();
String contactUriString = contactUri.toString();
break;
}
}
}
提前致谢
有一个简单的 API 辅助方法 - getLookupUri:
Uri contactUri = data.getData();
ContentResolver cr = getContentResolver();
Uri lookupUri = ContactsContract.Contacts.getLookupUri(cr, contactUri);
更新
要获得 LOOKUP_KEY,请执行以下操作:
String projection = String[] { Contacts.LOOKUP_KEY };
Cursor cursor = getContentResolver().query(contactUri, projection, null, null, null);
if (cursor != null && cursor.moveToNext()) {
String lookupKey = cursor.getString(0);
Log.d(TAG, "key = " + lookupKey);
cursor.close();
}