1

我正在制作一个通信应用程序,该应用程序已在其中设置了特定的帐户类型AccountManagerSyncAdapter附加了一个。我的几个联系人都有一个RawContact我的新帐户的 MIMETYPE 和一些相关数据。

我正在寻找正确的方法来查询电话联系人列表中每个联系人的列表/光标,这些联系人列表中附加了这些新帐户之一。我想获取整个联系人,这样我就可以做一些事情,比如检索他们的电话号码、显示名称和图片的 uri,但我只需要附加了我的新型帐户的联系人。

我有一种感觉,我需要将两个表与一些投影或选择参数连接在一起,以在一个光标对象中获取所有这些数据。我只是不确定如何做到这一点,尽管我已经尝试了很多不同的事情,即能够获取所有联系人,或者RawContact我的特定帐户类型的所有行,但不能同时获取。

谢谢

4

1 回答 1

3

获取Raw_Id与帐户类型和名称匹配的所有联系人:

    getContentResolver().query(ContactsContract.RawContacts.CONTENT_URI,
                                 new String[]{ContactsContract.RawContacts._ID,
                                 },
                                ContactsContract.RawContacts.ACCOUNT_NAME + " = ? AND " +
                                ContactsContract.RawContacts.ACCOUNT_TYPE + " = ? ",
                                new String[]{mAcccountName,mAccountType},null
                             );

对于 each ,从,匹配这里_ID获取所有行。ContactsContract.DataContactsContract.RawContacts._IDContactsContract.Data.RAW_CONTACT_ID

这些行包含与该联系人相关的所有数据Raw_id

请参阅文档以了解表的结构及其ContactsContract.Data包含的数据。

于 2012-10-29T12:13:11.920 回答