[英]Cannot get contact details from some contact
我現在已經拔掉了大部分頭發,在完全變粗之前,確實需要一些幫助
我正在嘗試啟動動作選擇器以選擇具有電話號碼的聯系人。 選擇該聯系人后,我要提取姓名和電話號碼。
但這僅適用於某些聯系人,而不是全部。 代碼很糟糕,如下所示:
選擇聯系人:
Intent contactPicker = new Intent(Intent.ACTION_PICK, contactsContract.CommonDataKinds.Phone.CONTENT_URI);
startActivityForResult(contactPicker, REQ_PICK_CONTACT);
提取ID(注意getData().getLastPathSegment()
:
onContactForImportPicked(intent.getData().getLastPathSegment());
然后我嘗試獲取此聯系人:
String[] fields = new String[] {
ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME_PRIMARY
};
Cursor cursor = content.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
fields,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=?", new String[] { id }, // SEE BELOW
null);
至此,可以正確提取許多聯系人,但是很多聯系人都不存在。 cursor.getCount() == 0
。 在上面的“下面看到”部分中,我嘗試了其他各個字段,鏈接了Contact._ID
, Phone._ID
等。
知道為什么不使用此方法獲取某些聯系人嗎?
使用您的代碼時,我什至找不到正確選擇的聯系人。 意圖數據包含所需數據的URI,因此您可以直接使用它。
嘗試-
Cursor cursor = content.query(data.getData(),
fields,
null,
null,
null);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.