The phone book presents the following features of social networks, how to add the same features to your application?
Through the supplier of contacts I get to the right lines.
Uri rawContactUri = ContentUris.withAppendedId(ContactsContract.RawContacts.CONTENT_URI, rawContactId); Uri entityUri = Uri.withAppendedPath(rawContactUri, ContactsContract.RawContacts.Entity.CONTENT_DIRECTORY); Cursor c = getActivity().getContentResolver().query(entityUri, new String[]{ContactsContract.RawContacts.SOURCE_ID, ContactsContract.RawContacts.Entity.DATA_ID, ContactsContract.RawContacts.Entity.MIMETYPE, ContactsContract.RawContacts.Entity.DATA1, ContactsContract.RawContacts.Entity.DATA2, ContactsContract.RawContacts.Entity.DATA3}, null, null, null); try { while (c.moveToNext()) { String sourceId = c.getString(0); if (!c.isNull(1)) { String mimeType = c.getString(2); String data = c.getString(3); Log.d(TAG, "sourceId = " + sourceId); Log.d(TAG, "mimeType = " + mimeType); Log.d(TAG, "data = " + data); Log.d(TAG, "data = " + c.getString(4)); Log.d(TAG, "data = " + c.getString(5)); } } } finally { c.close(); } And how to continue to run the desired Intent ? Trying this way
Uri singleUri = ContentUris.withAppendedId(ContactsContract.RawContacts.CONTENT_URI, rawContactId); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(singleUri, "vnd.android.cursor.item/vnd.com.vkontakte.android.profile"); startActivity(intent); But nothing comes out, what am I doing wrong?
The solution is found, maybe someone will benefit
String contactId = "111"; // - id пользователя в таблице ContactsContract.Contacts long rawContactId = 0; // - id пользователя в таблице ContactsContract.RawContacts We request contact data from various accounts
Cursor curIcon = getActivity().getContentResolver(). query(ContactsContract.RawContacts.CONTENT_URI, null, ContactsContract.RawContacts.CONTACT_ID + " = ?", new String[]{contactId }, null); curIcon.moveToFirst(); do { rawContactId = curIcon.getLong(curIcon.getColumnIndex(ContactsContract.RawContacts._ID)); Log.d(TAG, "rawContactId = " + rawContactId); Log.d(TAG, "ACCOUNT_TYPE = " + curIcon.getString(curIcon.getColumnIndex(ContactsContract.RawContacts.ACCOUNT_TYPE))); } while (curIcon.moveToNext()); curIcon.close(); We are requesting contact data from the ContactsContract.Data table
Uri rawContactUri = ContentUris.withAppendedId(ContactsContract.RawContacts.CONTENT_URI, rawContactId ); Uri entityUri = Uri.withAppendedPath(rawContactUri, ContactsContract.RawContacts.Entity.CONTENT_DIRECTORY); Cursor c = getActivity().getContentResolver().query(entityUri, new String[]{ContactsContract.RawContacts.SOURCE_ID, ContactsContract.RawContacts.Entity.DATA_ID, // _id записи в таблице ContactsContract.Data ContactsContract.RawContacts.Entity.MIMETYPE, // тип данных ContactsContract.RawContacts.Entity.DATA1, // тут будет идентефикатор пользователя ContactsContract.RawContacts.Entity.DATA2, // тут будет название соцсети ContactsContract.RawContacts.Entity.DATA3}, // тут будет описание действия/функции null, null, null); try { while (c.moveToNext()) { if (!c.isNull(1)) { String mimeType = c.getString(2); long data_id = c.getLong(1); Log.d(TAG, "data_id = " + data_id ); Log.d(TAG, "mimeType = " + mimeType); } } } finally { c.close(); } Well, run the desired function
Uri singleUri = ContentUris.withAppendedId(ContactsContract.Data.CONTENT_URI, data_id ); Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setDataAndType(singleUri, mimeType ); startActivity(intent); 
