我现在已经拔掉了大部分头发,真的需要一些帮助 在我完全大胆之前
我尝试启动动作选择器来选择具有电话号码的联系人。 选择该联系人后,我想提取姓名和电话号码。
但这只发生在某些联系人身上,而不是全部。 代码如下:
选择联系人:
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
。在'见下面'
上面的部分,我已尝试过各种其他领域,linke
Contact._ID
,Phone._ID
等等。
知道为什么有些联系人没有使用这种方法获取?
答案 0 :(得分:0)
当我使用你的代码时,我甚至没有得到我正确选择的联系人。 intent数据包含所需数据的URI,因此您可以直接使用它。
尝试 -
Cursor cursor = content.query(data.getData(),
fields,
null,
null,
null);