【问题标题】:How to get a contact's facebook id or url from native contacts / content resolver?如何从本地联系人/内容解析器获取联系人的 facebook id 或 url?
【发布时间】:2011-05-29 05:45:20
【问题描述】:

如何获取已通过 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。

【问题讨论】:

  • 如果您通过您的个人资料启动 facebook 应用程序,则会启动以下意图。 der intent sieht folgendermaßen 澳大利亚:12-22 08:59:27.083:INFO/ActivityManager(123):开始活动:Intent { act=android.intent.action.VIEW dat=content://com.android.contacts/data/ 4121 cmp=com.facebook.katana/.ProfileTabHostActivity } 这看起来有一个原始数据行代表 facebook 帐户。但是用这个 id 访问一行会返回一个空游标。

标签: android android-contacts android-contentprovider facebook


【解决方案1】:

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

通过 联系人提供者仅限于 供应商提供的少数系统应用程序 本身。其他应用程序不能 读取该数据。

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

【讨论】:

  • 能否请您发布您如何使用联系人姓名获取 fb id 的代码?
猜你喜欢
  • 2013-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-02
  • 1970-01-01
  • 2012-02-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多