Как получить идентификатор или URL-адрес контакта из нативных контактов / распознавателя контента? - PullRequest
14 голосов
/ 22 декабря 2010

Как получить идентификатор Facebook или URL-адрес контактов, которые были синхронизированы с собственным приложением контактов через адаптер синхронизации Facebook?

Я просмотрел разные 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), но нигде не вижу URL-адрес Facebook или идентификатор этого контакта.

1 Ответ

11 голосов
/ 23 декабря 2010

Получил ответ от группы Google (http://groups.google.com/group/android-developers/browse_thread/thread/95110dd7a1e1e0b4):

Доступ к друзьям в Facebook через поставщик контактов ограничен Горстка системных приложений провайдера сам. Другие приложения не могут прочитайте эти данные.

Поэтому теперь я получаю кеш всех имен контактов / идентификаторов через API FB Graph (http://graph.facebook.com/me/friends)) и использую его для поиска идентификатора.

...