【问题标题】:Getting email and phone from contacts Android从 Android 联系人中获取电子邮件和电话
【发布时间】:2014-10-16 13:56:58
【问题描述】:

我正在尝试通过如下所述的单个光标检索电子邮件和电话。我正在使用Email.CONTENT_URI,因此我没有检索电话号码,所以我的phoneColumn 正在返回电子邮件。我尝试使用Phone.CONTENT_URI,但它只返回一小部分联系人(可能是因为它只获取有电话号码的联系人)。有没有办法使用特定的 Uri 同时获取电子邮件和电话,或者我如何使用两个光标来获取?

Cursor cursor = context.getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
                projection, null, null, order);
        int idColumn = cursor.getColumnIndex(ContactsContract.Data._ID);
        int nameColumn = cursor.getColumnIndex(ContactsContract.Data.DISPLAY_NAME);
        int emailColumn = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA);
        int phoneColumn = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DATA);

投影在哪里:

String[] projection = new String[] {
                ContactsContract.Contacts._ID,
                ContactsContract.Data.DISPLAY_NAME,
                ContactsContract.CommonDataKinds.Email.DATA,
                ContactsContract.CommonDataKinds.Phone.DATA, }

【问题讨论】:

    标签: android android-contacts contactscontract


    【解决方案1】:

    请看here。您应该找到此类查询的所有必要示例。

    例如,你可以通过这种方式获取一个contactId的所有信息:

    Cursor data = context.getContentResolver().query( 
    Data.CONTENT_URI, new String[] { Data._ID,Data.MIMETYPE,
    Email.ADDRESS, Photo.PHOTO},Data.CONTACT_ID 
    + "=?" + " AND " + "(" +  Data.MIMETYPE + "='" 
    + Photo.CONTENT_ITEM_TYPE + "' OR " + Data.MIMETYPE 
    + "='" + Email.CONTENT_ITEM_TYPE +"')",
    new String[] {String.valueOf(contactId)}, null);
    

    您可以通过这种方式获取所有联系人的信息,然后可能会根据您的标准对其进行排序。您可以根据需要构建这样的查询。

    【讨论】:

    • 该链接为我提供了一些基本信息。我不希望它用于特定的contactId,而是所有联系人。我仍然可以以相同的方式获取列cursor.getColumnIndex(ContactsContract.Data.DISPLAY_NAME);
    • 此答案与您正在寻找的相似:stackoverflow.com/a/11862598/3784165
    【解决方案2】:

    我创建了这个库来解决您的所有疑问。它只会保存至少有一个电子邮件或电话号码的联系人。它还将删除来自同一联系人的电子邮件和电话号码中的重复项(由 whatsapp 等第三方应用创建)。

    请看一下。

    链接:https://github.com/raghavsatyadev/ContactFetcher/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-09
      • 1970-01-01
      • 1970-01-01
      • 2014-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多