android——获取手机联系人的工具类

这个工具类只获取了手机联系人的姓名和电话号码,

1、首先将这个姓名、电话号码封装成domain:

package com.wang.domain;

public class ContactInfo {

	private String name;
	private String phono;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPhono() {
		return phono;
	}

	public void setPhono(String phono) {
		this.phono = phono;
	}
}

 2、工具类:

package com.wang.engine;

import java.util.ArrayList;
import java.util.List;

import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;

import com.wang.mobilesafe.domain.ContactInfo;

/**
 * 提供手机联系人信息的类
 * 
 * @author HeJW
 *
 */
public class ContactInfoProvider {

	/**
	 * 获取手机系统里面所有联系人信息
	 * 
	 * @return 所有联系人信息的集合
	 */
	public static List<ContactInfo> getContactInfos(Context context) {

		List<ContactInfo> infos = new ArrayList<ContactInfo>();
		
		ContentResolver resolver = context.getContentResolver();

		Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");
		Uri dataUri = Uri.parse("content://com.android.contacts/data");

		Cursor cursor = resolver.query(uri, new String[] { "contact_id" },
				null, null, null);
		while (cursor.moveToNext()) {

			String id = cursor.getString(0);
			if (id != null) {

				ContactInfo info = new ContactInfo();
				
				Cursor dataCursor = resolver.query(dataUri, new String[] {
						"mimetype", "data1" }, "raw_contact_id=?",
						new String[] { id }, null);
				while (dataCursor.moveToNext()) {

					String mime = dataCursor.getString(0);
					String data1 = dataCursor.getString(1);
					if ( "vnd.android.cursor.item/name".equals(mime) ) {
						info.setName(data1);
					} else if ( "vnd.android.cursor.item/phone_v2".equals(mime) ) {
						info.setPhono(data1);
					}
				}
				infos.add(info);
				dataCursor.close();
			}
		}
		cursor.close();

		return infos;
	}
}

猜你喜欢

转载自hejiawangjava.iteye.com/blog/2241029