android读取联系人信息(学习版)
文章分类:移动开发
package com.activity;
import android.app.Activity;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Contacts;
import android.provider.Contacts.People;
import android.widget.TextView;
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv = (TextView) findViewById(R.id.TextView01);
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()) {
while (newcur.moveToNext()) {
email = email+ newcur.getString(newcur.getColumnIndex(Contacts.ContactMethods.DATA));
}
}
tv.setText("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(); // 用完得关闭吧
}
}