I fetched all device contacts from phonebook. Now i want to fetch linked accounts(facebook,twitter,instagram,LinkedIn)urls from that particular contact that is fetched from phonebook.What should i do?
Here is the code to fetch the contacts.
public Cursor getContactsCursor(FragmentActivity activity) {
Cursor cursor = null;
try {
String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + "= 0" + " OR " + ContactsContract.Contacts.IN_VISIBLE_GROUP + "= 1";
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
ContentResolver cr = activity.getContentResolver();
return cr.query(ContactsContract.Contacts.CONTENT_URI, null, selection, null, sortOrder);
} catch (Exception e) {
AppLogger.e(Helper.class.getSimpleName(), e.getMessage());
return cursor;
}
}
Now i don't know how to fetch the accounts (like facebook, linkedin etc) linked with the particular contact.
Can someone please guide me.
Update : In below attached image, On clicking the section highlighted in red, opens the linked in user profile in browser. Hence i am willing to fetch the field which is used to open the user profile page.
Thanks in advance.
You'll need to figure out the exact MIMETYPE
of all accounts you're interested in, for example, Google+'s MIMETYPE
is: vnd.android.cursor.item/vnd.googleplus.profile
You can dump all MIMETYPE
s for a contact and figure out manually which you need:
// make sure you import Data from: ContactsContract.Data
String[] projection = new String[] { Data.MIMETYPE };
String selection = Data.CONTACT_ID + " = '"+ contactId + "'";
Cursor cursor = getContentResolver().query(Data.CONTENT_URI, projection, selection, null, null);
DatabaseUtils.dumpCursor(cursor);
cursor.close();
Once you have a fixed list of the MIMETYPE
s you want, you can query the info in them for a specific contact:
// Add more
String[] mimetypes = new String[] {
"vnd.android.cursor.item/vnd.googleplus.profile",
"vnd.android.cursor.item/vnd.com.whatsapp.profile"
};
// Usually the interesting info is on the first few fields, modify this if needed
String[] projection = new String[] { Data.DATA1, Data.DATA2, Data.DATA3, Data.DATA4 };
String selection = Data.CONTACT_ID + " = '"+ contactId + "' AND " + Data.MIMETYPE + " IN (?,?)";
Cursor cursor = getContentResolver().query(Data.CONTENT_URI, projection, selection, mimetypes, null);
DatabaseUtils.dumpCursor(cursor);
cursor.close();
UPDATE:
In case of linkedin, the mimetype is indeed: vnd.android.cursor.item/vnd.com.linkedin.android.profile
.
Regarding your comment about not having the profile url, in Data1 you should have some long ID like AC...UQ4
(about 40 characters).
Then your url is:
https://www.linkedin.com/profile/view?id=<data1Id>
like: https://www.linkedin.com/profile/view?id=AC...UQ4
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With