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. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
  2. Android更新UI的五种方式
  3. android 之simpleAdapter详解
  4. Android存取txt
  5. android监听当前应用
  6. Android(安卓)遍历ListView条目控件
  7. 获取Android(安卓)Device的信息
  8. Android中获取应用程序(包)的信息-----PackageManager的使用(一)
  9. 遍历android根目录的简单资源查看器

随机推荐

  1. Androd学习笔记——Android中Touch事件的
  2. 【转】How to port native (C/C++) libra
  3. 《Android 获取当前app的版本号和版本名
  4. Android(安卓)Studio运行Hello World程序
  5. android 中给图片加圆角效果
  6. Android API 中文 (112) ―― ThumbnailU
  7. Android Binder机制(三) ServiceManager
  8. Android屏幕截图实现 (adbd部分)
  9. Ubuntu10.04 LTS 下编译Android
  10. Actionbar&Toolbar 自定义Menu 布局--Act