I am a developing an application for composing sms in android platform. For that i need to get "Contacts", "Recent Contacts" and "Groups". Please tell me any tutorial or the code of how to do it. When we click on any of these three buttons there should be contacts along with a checkbox for selecting multiple contacts. Thanks.
here is the code to get 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();
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