How to get contacts in Android

I am developing an SMS composing application on the Android platform. To do this, I need to get "Contacts", "Recent Contacts" and "Groups". Please tell me some tutorial or code on how to do this. When we click on any of these three buttons, there should be contacts along with a flag to select multiple contacts. Thanks.

+4
source share
1 answer

here is the code to get the contacts programmatically

ContentResolver cr = getContentResolver(); Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); String id = null, name = null, email = null, phone = null, note = null, orgName = null, title = null; String Phone1 = "unknown", Phone2 = "unknown", Phone3 = "unknown", type1 = "unknown", type2 = "unknown", type3 = "unknown"; int size = cur.getCount(); if (cur.getCount() > 0) { int cnt = 1; while (cur.moveToNext()) { email = ""; name = ""; cnt++; id = cur.getString(cur .getColumnIndex(ContactsContract.Contacts._ID)); name = cur .getString(cur .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); if (name != null && name != "") { if (!checkEmail(name)) { email = ""; } else { email = name; name = ""; } } if (Integer .parseInt(cur.getString(cur .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) { System.out.println("name : " + name); Cursor pCur = cr .query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[] { id }, null); Phone1 = " "; Phone2 = " "; Phone3 = " "; while (pCur.moveToNext()) { String phonetype = pCur .getString(pCur .getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE)); String MainNumber = pCur .getString(pCur .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); if (phonetype.equalsIgnoreCase("1")) { Phone1 = MainNumber; type1 = "home"; } else if (phonetype.equalsIgnoreCase("2")) { Phone2 = MainNumber; type2 = "mobile"; } else { Phone3 = MainNumber; type3 = "work"; } } pCur.close(); } Cursor addrCur = cr .query(ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI, null, ContactsContract.CommonDataKinds.StructuredPostal.CONTACT_ID + " = ?", new String[] { id }, null); if (addrCur.getCount() == 0) { addbuffer.append("unknown"); } else { int cntr = 0; while (addrCur.moveToNext()) { cntr++; String poBox = addrCur .getString(addrCur .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POBOX)); if (poBox == null) { poBox = " "; } String street = addrCur .getString(addrCur .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET)); if (street == null) { street = " "; } String neb = addrCur .getString(addrCur .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.NEIGHBORHOOD)); if (neb == null) { neb = " "; } String city = addrCur .getString(addrCur .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY)); if (city == null) { city = " "; } String state = addrCur .getString(addrCur .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION)); if (state == null) { state = " "; } String postalCode = addrCur .getString(addrCur .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE)); if (postalCode == null) { postalCode = " "; } String country = addrCur .getString(addrCur .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY)); if (country == null) { country = " "; } String type = addrCur .getString(addrCur .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.TYPE)); if (type == null) { type = " "; } } } addrCur.close(); String noteWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?"; String[] noteWhereParams = new String[] { id, ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE }; Cursor noteCur = cr.query( ContactsContract.Data.CONTENT_URI, null, noteWhere, noteWhereParams, null); note = " "; if (noteCur.moveToFirst()) { note = noteCur .getString(noteCur .getColumnIndex(ContactsContract.CommonDataKinds.Note.NOTE)); if (note == null) { note = " "; } } noteCur.close(); String orgWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?"; String[] orgWhereParams = new String[] { id, ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE }; Cursor orgCur = cr.query( ContactsContract.Data.CONTENT_URI, null, orgWhere, orgWhereParams, null); orgName = " "; if (orgCur.moveToFirst()) { orgName = orgCur .getString(orgCur .getColumnIndex(ContactsContract.CommonDataKinds.Organization.COMPANY)); } if (orgName == null) { orgName = " "; } orgCur.close(); Cursor emailCur = cr .query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", new String[] { id }, null); email = "unknown"; while (emailCur.moveToNext()) { email = emailCur .getString(emailCur .getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); String emailType = emailCur .getString(emailCur .getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE)); if (email == null) { email = "unknown"; } if (emailType.equalsIgnoreCase("1")) { } else { } } // add emailCur.close(); 
+18
source

Source: https://habr.com/ru/post/1389799/


All Articles