14

如何获取已通过 Facebook 同步适配器同步到本机联系人应用程序的联系人的 facebook id 或 url?

我浏览了不同的网址,但没有看到任何有关 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 url 或 id。

4

1 回答 1

11

得到了谷歌组的回复(http://groups.google.com/group/android-developers/browse_thread/thread/95110dd7a1e1e0b4):

通过联系人提供程序访问 Facebook 朋友仅限于提供程序本身的少数系统应用程序。其他应用程序无法读取该数据。

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

于 2010-12-23T07:44:41.980 回答