import android.app.Activity;import android.database.Cursor;import android.os.Bundle;import android.provider.ContactsContract;import android.provider.ContactsContract.Data;import android.provider.ContactsContract.CommonDataKinds.Im;import android.provider.ContactsContract.CommonDataKinds.Nickname;import android.provider.ContactsContract.CommonDataKinds.Note;import android.provider.ContactsContract.CommonDataKinds.Organization;import android.util.Log;public class ContactActivity extends Activity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);// 获得所有的联系人Cursor cur = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null,null,null,ContactsContract.Contacts.DISPLAY_NAME+ " COLLATE LOCALIZED ASC");// 循环遍历if (cur.moveToFirst()) {int idColumn = cur.getColumnIndex(ContactsContract.Contacts._ID);int displayNameColumn = cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);do {// 获得联系人的ID号String contactId = cur.getString(idColumn);// 获得联系人姓名String disPlayName = cur.getString(displayNameColumn);// 查看该联系人有多少个电话号码。如果没有这返回值为0int phoneCount = cur.getInt(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));Log.i("username", disPlayName);if (phoneCount > 0) {// 获得联系人的电话号码Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+ " = " + contactId, null, null);if (phones.moveToFirst()) {do {// 遍历所有的电话号码String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));String phoneType = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));Log.i("phoneNumber", phoneNumber);Log.i("phoneType", phoneType);} while (phones.moveToNext());}}// 获取该联系人邮箱Cursor emails = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+ " = " + contactId, null, null);if (emails.moveToFirst()) {do {// 遍历所有的电话号码String emailType = emails.getString(emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE));String emailValue = emails.getString(emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));Log.i("emailType", emailType);Log.i("emailValue", emailValue);} while (emails.moveToNext());}// 获取该联系人IMCursor IMs = getContentResolver().query(Data.CONTENT_URI,new String[] { Data._ID, Im.PROTOCOL, Im.DATA },Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='"+ Im.CONTENT_ITEM_TYPE + "'",new String[] { contactId }, null);if (IMs.moveToFirst()) {do {String protocol = IMs.getString(IMs.getColumnIndex(Im.PROTOCOL));String date = IMs.getString(IMs.getColumnIndex(Im.DATA));Log.i("protocol", protocol);Log.i("date", date);} while (IMs.moveToNext());}// 获取该联系人地址Cursor address = getContentResolver().query(ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+ " = " + contactId, null, null);if (address.moveToFirst()) {do {// 遍历所有的地址String street = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET));String city = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY));String region = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION));String postCode = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE));String formatAddress = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS));Log.i("street", street);Log.i("city", city);Log.i("region", region);Log.i("postCode", postCode);Log.i("formatAddress", formatAddress);} while (address.moveToNext());}// 获取该联系人组织Cursor organizations = getContentResolver().query(Data.CONTENT_URI,new String[] { Data._ID, Organization.COMPANY,Organization.TITLE },Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='"+ Organization.CONTENT_ITEM_TYPE + "'",new String[] { contactId }, null);if (organizations.moveToFirst()) {do {String company = organizations.getString(organizations.getColumnIndex(Organization.COMPANY));String title = organizations.getString(organizations.getColumnIndex(Organization.TITLE));Log.i("company", company);Log.i("title", title);} while (organizations.moveToNext());}// 获取备注信息Cursor notes = getContentResolver().query(Data.CONTENT_URI,new String[] { Data._ID, Note.NOTE },Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='"+ Note.CONTENT_ITEM_TYPE + "'",new String[] { contactId }, null);if (notes.moveToFirst()) {do {String noteinfo = notes.getString(notes.getColumnIndex(Note.NOTE));Log.i("noteinfo", noteinfo);} while (notes.moveToNext());}// 获取nickname信息Cursor nicknames = getContentResolver().query(Data.CONTENT_URI,new String[] { Data._ID, Nickname.NAME },Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='"+ Nickname.CONTENT_ITEM_TYPE + "'",new String[] { contactId }, null);if (nicknames.moveToFirst()) {do {String nickname_ = nicknames.getString(nicknames.getColumnIndex(Nickname.NAME));Log.i("nickname_", nickname_);} while (nicknames.moveToNext());}} while (cur.moveToNext());}}}

更多相关文章

  1. android 监听联系人数据库
  2. android(2.0以后版本) 中读取联系人和通话记录
  3. 【Android】Android 联系人数据库浅析之通话记录
  4. Android联系人数据库全解析(5)
  5. android获取电话号码实例
  6. android中读取联系人和通话记录
  7. Android文件递归遍历
  8. android 存储联系人(save contact) 总结

随机推荐

  1. Android中的文件下载
  2. FinalDB介绍
  3. Android(安卓)AIDL使用
  4. android 音频管理:AudioPolicyService 和
  5. android之AlertDialog 点击其他区域自动
  6. Android—Preference详解之Preference系
  7. android中的category静态值
  8. GmSSL Android端 :使用Android(安卓)Studi
  9. Android读取彩信附件
  10. Android改变图片背景颜色tint(着色)或 ba