按帐户类型获取联系人

时间:2012-06-15 15:53:45

标签: android

有人可以帮助我了解如何获得每个帐户的所有联系人吗?这意味着,我想提出一个条件,该条件将决定联系人是来自手机(由用户创建)还是来自谷歌和其他一些同步来源,因为截至目前我获得所有联系人及其所有同步来源的组合,例如本地联系人,谷歌甚至雅虎联系人?

1 个答案:

答案 0 :(得分:1)

  

有人可以帮助我了解如何获得每个帐户的所有联系人吗?

您可以使用下一个代码段来检索特定帐户类型的联系人:

String where = RawContacts.ACCOUNT_TYPE+ "=?";
String[] args = { accountType };
Cursor contacts = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, where, args, null);

int numberIndex = contacts.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
int displayNameIndex = contacts.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);
for (contacts.moveToFirst(); !contacts.isAfterLast(); contacts.moveToNext()) {
    String number = contacts.getString(numberIndex);
    String displayName = contacts.getString(displayNameIndex);
    // do something with account contacts
}
contacts.close();

要过滤普通手机通讯录(未连接到任何帐户),您可以使用:

String where = RawContacts.ACCOUNT_TYPE+ " IS NULL";