【问题标题】:reading specific contact information阅读特定的联系信息
【发布时间】:2014-10-23 23:39:37
【问题描述】:

我目前正在开发一款 Android 应用程序,该应用程序要求我读取设备上的所有联系人,并根据条件仅选择特定联系人(仅限具有至少一个有效手机号码和所有电子邮件地址的联系人)联系方式)。

我在https://stackoverflow.com/a/19563999/3262731 尝试了推荐的方法,但在一个有大约 800 个联系人的测试设备上,检索所有记录然后过滤大约需要 17-20 秒。

理想情况下,我希望将条件构建到一个查询中,该查询将联系人数据库中的联系人、电话和电子邮件存储表连接起来,而不是在我的代码中进行过滤。

请问大家有什么建议吗?

【问题讨论】:

    标签: android android-contentprovider contacts android-contacts android-contentresolver


    【解决方案1】:

    android 文档似乎包含您要查找的信息here

    private static final String[] PROJECTION =
        {
            /*
             * The detail data row ID. To make a ListView work,
             * this column is required.
             */
            Data._ID,
            // The primary display name
            Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ?
                    Data.DISPLAY_NAME_PRIMARY :
                    Data.DISPLAY_NAME,
            // The contact's _ID, to construct a content URI
            Data.CONTACT_ID
            // The contact's LOOKUP_KEY, to construct a content URI
            Data.LOOKUP_KEY (a permanent link to the contact
        };
    
    return new CursorLoader(getActivity(), contentUri, PROJECTION, SELECTION, SELECTION_ARGS, SORT_ORDER);
    

    有关如何在文档中定义标准的更多详细信息。我认为这也比使用 ContentResolver 更快。

    【讨论】:

    • 感谢 Nelson,这是我的出发点,但它并不完全是我所需要的,并且文档本身并没有提供太多从不同联系人表(电子邮件、电话)获取数据的线索同时。
    【解决方案2】:

    根据http://developer.android.com/reference/android/provider/ContactsContract.Contacts.html

    查询

    • 如果您需要读取单个联系人,请考虑使用CONTENT_LOOKUP_URI 而不是CONTENT_URI
    • 如果您需要通过电话号码查找联系人,请使用专门为此目的优化的PhoneLookup.CONTENT_FILTER_URI
    • 如果您需要按部分姓名查找联系人,例如要生成按您输入的过滤器建议,请使用CONTENT_FILTER_URI URI
    • 如果您需要通过电子邮件地址、昵称等数据元素查找联系人,请使用ContactsContract.Data 查询 桌子。结果将包含联系人 ID、姓名等。

    【讨论】:

    • 谢谢 Drakosha,但我想做的不是查找​​联系人 - 我想根据他们是否至少有 1 个联系人(名字、姓氏和手机号码)来检索手机号码并检索他们所有的电子邮件地址。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    • 2012-01-11
    • 2014-03-28
    • 2018-10-29
    • 1970-01-01
    • 2012-04-24
    • 2012-12-13
    相关资源
    最近更新 更多