【问题标题】:Cannot get contact details from some contact无法从某些联系人处获取详细联系信息
【发布时间】:2014-12-21 10:07:09
【问题描述】:

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

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

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

选择联系人:

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 等等等等。

知道为什么使用此方法无法获取某些联系人吗?

【问题讨论】:

    标签: android contacts


    【解决方案1】:

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

    试试 --

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

    【讨论】:

    • 谢谢。简单了很多。但同样的问题也适用。光标为空:getCount() == 0。奇怪的是我刚刚选择了联系人..
    猜你喜欢
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    • 2012-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多