Как получить контактный facebook id или url из родных контактов/преобразователя контента?

Как получить идентификатор или URL-адрес facebook контактов, которые были синхронизированы с приложением для контактов с помощью адаптера синхронизации 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

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

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

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