最近在做android 联系人模块的开发,和大家分享一下:
下面的功能主要是实现查询联系人的姓名,电话,邮件地址,
String columns[] = new String[] { People._ID, People.NAME, People.NUMBER, People.PRIMARY_EMAIL_ID,
People.PRIMARY_ORGANIZATION_ID, People.PRIMARY_PHONE_ID, People.DISPLAY_NAME,
People.IM_ACCOUNT, People.IM_HANDLE, People.PHONETIC_NAME, People.TYPE };
Uri mContacts = People.CONTENT_URI;
Cursor cur = managedQuery(mContacts, columns, // 要返回的数据字段
null, // WHERE子句
null, // WHERE 子句的参数
People.NAME // Order-by子句
);
if (cur.moveToFirst()) {
Cursor newcur = null;
do {
// 获取字段的值
String name = cur.getString(cur.getColumnIndex(People.NAME));
String phoneNo = cur.getString(cur.getColumnIndex(People.NUMBER));
String peopleId = cur.getString(cur.getColumnIndex(People._ID));
String[] PROJECTION = new String[] { Contacts.ContactMethods._ID, Contacts.ContactMethods.KIND, Contacts.ContactMethods.DATA };
newcur = managedQuery(Contacts.ContactMethods.CONTENT_URI, PROJECTION, Contacts.ContactMethods.PERSON_ID + "=/'"
+ cur.getLong(cur.getColumnIndex(People._ID)) + "/'", null, null);
startManagingCursor(newcur);
String email = "";
if (newcur.moveToFirst()) {
email = newcur.getString(newcur.getColumnIndex(Contacts.ContactMethods.DATA));
}
log.info("name = " + name + " phoneNo = " + phoneNo + "email = " + email);
if (email != null && !"".equals(email) && email.trim().length() != 0) {
//此处可以取到联系人邮件
}
} while (cur.moveToNext());
if (newcur != null) {
newcur.close();//用完得关闭吧
}
}
if (cur != null)
cur.close(); //用完得关闭吧
------------------------------------------------------
通过上面查询邮件地址的方式,可以延伸出查询联系人的地址信息,公司信息等等
欢迎大家讨论