无法从某些联系人处获取联系方式

时间:2014-10-25 20:43:49

标签: android contacts

我现在已经拔掉了大部分头发,真的需要一些帮助 在我完全大胆之前

我尝试启动动作选择器来选择具有电话号码的联系人。 选择该联系人后,我想提取姓名和电话号码。

但这只发生在某些联系人身上,而不是全部。 代码如下:

选择联系人:

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._IDPhone._ID等等。

知道为什么有些联系人没有使用这种方法获取?

1 个答案:

答案 0 :(得分:0)

当我使用你的代码时,我甚至没有得到我正确选择的联系人。 intent数据包含所需数据的URI,因此您可以直接使用它。

尝试 -

 Cursor cursor = content.query(data.getData(),
                fields,
                null,
                null,
                null);