从具有facebook的电话簿中检索这些联系人

时间:2014-08-19 12:28:44

标签: android

我想从具有facebook帐户的电话簿中查找所有联系人。

我做的步骤

  1. 我从通讯录中获得了联系人ID。
  2. 基于来自RawContact表的id get Accounts。
  3. 找到与联系人相关联的所有帐户,但未找到Facebook帐户。

1 个答案:

答案 0 :(得分:0)

您可以按照以下算法获取具有特定帐户类型的联系人。 1.首先,查询原始联系人表并查找所有原始联系人。检查有哪些不同的帐户类型和帐户名称可用。 http://developer.android.com/reference/android/provider/ContactsContract.SyncColumns.html#ACCOUNT_TYPE Facebook联系人的帐户类型将包含文本“facebook”。 2.获得确切的帐户类型后,您可以使用帐户类型= facebook查询原始联系人。 这将给所有Facebook原始联系人。原始联系人表具有contact_id字段,您可以使用该字段在“联系人”表上查询以获取所有Facebook联系人。

下面是代码段,可以打印当前在设备上配置的所有帐户名称和类型。这只是用于检查所有帐户类型的示例代码。如果您没有找到与Facebook相关的任何帐户名称/类型,我想没有Facebook联系人。

String[] projection = { RawContacts._ID, RawContacts.ACCOUNT_TYPE,
                RawContacts.ACCOUNT_NAME };
        Cursor cur = cr.query(RawContacts.CONTENT_URI, projection, null, null,
                null);
        if (cur != null) {
            while (cur.moveToNext()) {
                long rawContactId = cur.getLong(cur
                        .getColumnIndexOrThrow(RawContacts._ID));
                String accountType = cur.getString(cur
                        .getColumnIndexOrThrow(RawContacts.ACCOUNT_TYPE));
                String accountName = cur.getString(cur
                        .getColumnIndexOrThrow(RawContacts.ACCOUNT_NAME));
            }
        }