14

Facebook 同期アダプターを介してネイティブの連絡先アプリに同期されている連絡先の Facebook ID または URL を取得するにはどうすればよいですか?

さまざまな 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

Googleグループ(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 に答える