【发布时间】:2014-08-19 12:28:43
【问题描述】:
我想从拥有 facebook 帐户的电话簿中检索所有联系人。
我做的步骤
- 我从“联系人”中获得了联系人 ID。
- 根据 id 从 RawContact 表中获取 Accounts。
- 已找到与联系人关联的所有帐户,但未找到 facebook 帐户。
【问题讨论】:
标签: android
我想从拥有 facebook 帐户的电话簿中检索所有联系人。
我做的步骤
【问题讨论】:
标签: android
您可以按照以下算法获取特定帐户类型的联系人。 1.首先,查询原始联系人表,找到所有原始联系人。检查有哪些不同的帐户类型和帐户名称可用。 http://developer.android.com/reference/android/provider/ContactsContract.SyncColumns.html#ACCOUNT_TYPE Facebook 联系人将具有包含文本“facebook”的帐户类型。 2. 获得准确的帐户类型后,您可以查询帐户类型 = facebook 的原始联系人。 3. 这将提供所有 Facebook 原始联系人。原始联系人表有 contact_id 字段,您可以使用该字段在联系人表上查询以获取所有 Facebook 联系人。
下面是代码 sn-p,它可以打印当前在存在联系人的设备上配置的所有帐户名称和类型。这只是用于检查所有帐户类型的示例代码。如果您没有找到任何与 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));
}
}
【讨论】: