0

有人可以帮助我了解如何获取每个帐户的所有联系人吗?意思是,我想设置一个条件来确定联系人是来自手机(由用户创建)还是来自谷歌和其他一些同步源,因为到目前为止我正在获取所有联系人及其所有同步源的组合,例如本地联系人、谷歌甚至雅虎联系人?

4

1 回答 1

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";
于 2013-02-12T14:53:28.450 回答