如何从本机联系人/内容解析器获取联系人的Facebook ID或URL?

时间:2010-12-22 05:55:10

标签: android android-contacts android-contentprovider facebook

如何获取通过Facebook同步适配器同步到原生联系人应用的联系人的脸书ID或网址?

我浏览了不同的网址,但没有看到有关Facebook的任何信息。

我试过

ContactsContract.Data.CONTENT_URI
ContactsContract.CommonDataKinds.Email.CONTENT_URI
ContactsContract.CommonDataKinds.Phone.CONTENT_URI
ContactsContract.Contacts.CONTENT_URI

作为URI已经在下面的代码中:

    Uri uri = ContactsContract.Data.CONTENT_URI;
    Cursor c = getContentResolver().query(uri, null, null, null, null);
    while (c.moveToNext()) {
        for (int i=0; i<c.getColumnCount(); i++) {
            Log.d(TAG, c.getColumnName(i) + ": " +  c.getString(i));
        }
        Log.d(TAG, "==================================");

    }

我确实得到了像

这样的列值
contact_status_res_package: com.facebook.katana

在这个转储中,我也获得了联系人状态(contact_status列),但我无处可查看此联系人的facebook网址或ID。

1 个答案:

答案 0 :(得分:11)

收到了Google网上论坛的回复(http://groups.google.com/group/android-developers/browse_thread/thread/95110dd7a1e1e0b4):

  

通过Facebook访问Facebook好友   联系人提供商仅限于a   提供商提供的一些系统应用程序   本身。其他应用程序不能   阅读那些数据。

因此,现在我通过FB Graph api(http://graph.facebook.com/me/friends)获取所有联系人姓名/ id映射的缓存,并将其用于id查找。