How to get a contact's facebook id or url from native contacts / content resolver?
How to get the facebook id or url of a contacts that's been synced to the native contacts app via Facebook sync adapter?
I went through different urls, but didn't see any info regarding facebook.
I tried
ContactsContract.Data.CONTENT_URI
ContactsContract.CommonDataKinds.Email.CONTENT_URI
ContactsContract.CommonDataKinds.Phone.CONTENT_URI
ContactsContract.Contacts.CONTENT_URI
as URIs already in the code below:
Uri uri = ContactsContract.Data.CONTENT_URI;
Cursor c = getContentResolver().query(uri, null, null, null, 开发者_如何学JAVAnull);
while (c.moveToNext()) {
for (int i=0; i<c.getColumnCount(); i++) {
Log.d(TAG, c.getColumnName(i) + ": " + c.getString(i));
}
Log.d(TAG, "==================================");
}
I do get a column value like
contact_status_res_package: com.facebook.katana
in this dump, and I also get the contacts status (contact_status column), but nowhere do I see the facebook url or id of this contact.
Got the reply from on the Google Group (http://groups.google.com/group/android-developers/browse_thread/thread/95110dd7a1e1e0b4):
Access to Facebook friends via the contacts provider is restricted to a handful of system apps by the provider itself. Other applications cannot read that data.
Therefore now I fetch an cache all contact names/id mappings via FB Graph api (http://graph.facebook.com/me/friends) and use that for the id lookup.
精彩评论