http://fanfq.iteye.com/blog/779569

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. */
@Override
public 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);

// 查看该联系人有多少个电话号码。如果没有这返回值为0
int 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());
}

// 获取该联系人IM
Cursor 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:读取系统通讯录
  3. Android(安卓)Fragment 问题汇总
  4. Android(安卓)SMS(一) —— 读取短信
  5. 如何使用SharedPerferences
  6. Android(安卓)获取无线蓝牙MAC信息代码
  7. Android(安卓)SMS(一) —— 读取短信 .
  8. android获取音量分贝值
  9. Android中Gallery来显示图片

随机推荐

  1. Android应用程序键盘(Keyboard)消息处理机
  2. android 抓包
  3. ANDROID SHAPE鐢诲渾褰㈣儗鏅痏ANDROID瀹
  4. Android(安卓)自定义View--ProgressBar篇
  5. android 的四个层次开发
  6. Android 系列 2.8在Android应用程序中使
  7. Android Studio 4.0.0的介绍
  8. android APP自动增量更新
  9. 【Android】动态链接库so的加载原理
  10. 新书出版:《Android深度探索(卷1):HAL与驱动