import java.util.ArrayList ;import java.util.List ;
import android.content.Context ;import android.database.Cursor ;import android.net.Uri ;
public class QueryContactsUtils {public static List < Contact > querycontacts ( Context context ) {// [0]创建一个集合List < Contact > contactList = new ArrayList < Contact >();
// [1]先查询row_contacts表 的contact_id列 我们就知道一共有几条联系人Uri datauri = Uri . parse ( "content://com.android.contacts/data" );Uri uri = Uri . parse ( "content://com.android.contacts/raw_contacts" );Cursor cursor = context . getContentResolver (). query ( uri ,new String [] { "contact_id" }, null , null , null );while ( cursor . moveToNext ()) {String contact_id = cursor . getString ( 0 );// 创建javabaen对象Contact contact = new Contact ();if ( contact_id != null ) {
contact . setId ( contact_id );/** [2]根据contact_id去查询data表 查询data1列和mimetype !!view_data* 是由data表和mimetype表的组合*/
Cursor datacursor = context . getContentResolver (). query ( datauri ,new String [] { "data1" , "mimetype" },"raw_contact_id =?" , new String [] { contact_id }, null );while ( datacursor . moveToNext ()) {String data1 = datacursor . getString ( 0 );String mimetype = datacursor . getString ( 1 );// [3]根据mimetype区分数据类型if ( "vnd.android.cursor.item/name" . equals ( mimetype )) {contact . setName ( data1 );
} else if ( "vnd.android.cursor.item/phone_v2". equals ( mimetype )) {contact . setPhone ( data1 );
} else if ( "vnd.android.cursor.item/email_v2". equals ( mimetype )) {contact . setEmail ( data1 );}
} // 把javabean对象添加到数组里contactList . add ( contact );}}return contactList ;}}
android入门,利用内容解析者 简单实现读取联系人
最新推荐文章于 2022-11-29 14:17:30 发布