【工具类】获取android手机联系人的名子和号码,并以List的形式返回

【工具类】获取android手机联系人的名子和号码,并以List的形式返回
package  yinger.firewall.util;

import  java.util.ArrayList;
import  java.util.HashMap;

import  android.content.ContentResolver;
import  android.content.Context;
import  android.database.Cursor;
import  android.provider.ContactsContract;
import  android.provider.ContactsContract.PhoneLookup;

/**
 * ReadContactsUtil
 * 
 * 
@author  Ying_er
 * @Email [email protected]
 * @time 2011/03/30 11:57:23
 * 
@version  1.00
 
*/
public   final   class  MyReadContactsUtil {
    
/**
     * 
@return  contacts list
     
*/
    
public   static  ArrayList getContacts(Context context) {
        ArrayList
< HashMap < String, String >>  list  =   new  ArrayList < HashMap < String, String >> ();
        String number 
=   "" ;
        ContentResolver cr 
=  context.getContentResolver(); //  得到一个ContentResolver对象
        
//  得到一个游标查询对象
        Cursor cursor  =  cr.query(ContactsContract.Contacts.CONTENT_URI,  null ,
                
null null null );
        
while  (cursor.moveToNext()) {
            
//  获取联系人的名字的索引
             int  nameFieldColumnIndex  =  cursor
                    .getColumnIndex(PhoneLookup.DISPLAY_NAME);
            
//  获取联系人的名字
            String contact  =  cursor.getString(nameFieldColumnIndex);
            Cursor target 
=  context.getContentResolver().query(
                    ContactsContract.Contacts.CONTENT_URI, 
null null null ,
                    
null );
            target.moveToFirst();
            
//  得到联系人的ID
            String contentId  =  cursor.getString(target
                    .getColumnIndex(ContactsContract.Contacts._ID));
            String isPnone 
=  cursor
                    .getString(cursor
                            .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
            
if  (Integer.parseInt(isPnone)  >   0 ) {
                Cursor phone 
=  context.getContentResolver().query(
                        ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                        
null ,
                        ContactsContract.CommonDataKinds.Phone.CONTACT_ID 
+   " = "
                                
+  contentId,  null null );
                
while  (phone.moveToNext()) {
                    
//  得到联系人电话
                    number  =  phone
                            .getString(phone
                                    .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                    HashMap
< String, String >  map  =   new  HashMap < String, String > ();
                    map.put(
" number " , number);
                    map.put(
" name " , contact);
                    number 
=   "" ;
                    list.add(map);
                }
                phone.close();
            }
        }
        cursor.close();
        
return  list;
    }
}

你可能感兴趣的:(【工具类】获取android手机联系人的名子和号码,并以List的形式返回)