加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Android分页查询获取系统联系人信息

发布时间:2020-12-14 23:24:48 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 import java.util.ArrayList; import java.util.List; import android.R.integer; import android.content.Context; import android.database.Cursor;

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

  
import java.util.ArrayList;  
import java.util.List;  
  
  
import android.R.integer;  
import android.content.Context;  
import android.database.Cursor;  
import android.net.Uri;  
  
import android.provider.ContactsContract;  
  
  
  
import com.example.yqqmobilesafe.domain.ContactInfo;  
  
public class ContactInfoProvider {  
    private Context mContext;  
    public ContactInfoProvider(Context context) {  
        mContext=context;  
          
    }  
    /** 
     * 获取系统联系人信息 
     * @return 
     */  
    public  List<ContactInfo> getSystemContactInfos(){  
        List<ContactInfo> infos=new ArrayList<ContactInfo>();  
          
        // 使用ContentResolver查找联系人数据  
        Cursor cursor = mContext.getContentResolver().query(  
            ContactsContract.Contacts.CONTENT_URI,null,null);  
          
        // 遍历查询结果,获取系统中所有联系人  
        while (cursor.moveToNext())  
        {  
            ContactInfo info=new ContactInfo();  
            // 获取联系人ID  
            String contactId = cursor.getString(cursor  
                .getColumnIndex(ContactsContract.Contacts._ID));  
            // 获取联系人的名字  
            String name = cursor.getString(cursor.getColumnIndex(  
                ContactsContract.Contacts.DISPLAY_NAME));  
            info.setContactName(name);  
              
            // 使用ContentResolver查找联系人的电话号码  
            Cursor phones = mContext.getContentResolver().query(  
                ContactsContract.CommonDataKinds.Phone.CONTENT_URI,ContactsContract.CommonDataKinds.Phone.CONTACT_ID  
                    + " = " + contactId,null);  
              
            // 遍历查询结果,获取该联系人的多个电话号码  
            while (phones.moveToNext())  
            {  
                // 获取查询结果中电话号码列中数据。  
                String phoneNumber = phones.getString(phones  
                    .getColumnIndex(ContactsContract  
                    .CommonDataKinds.Phone.NUMBER));  
                info.setPhoneNumber(phoneNumber);  
            }  
            phones.close();  
              
            infos.add(info);  
            info=null;  
        }  
        cursor.close();  
          
        return infos;  
          
    }  
      
    /** 
     * 分页查询系统联系人信息 
     * @param pageSize 每页最大的数目 
     * @param currentOffset 当前的偏移量 
     * @return 
     */  
    public List<ContactInfo> getContactsByPage(int pageSize,int currentOffset) {  
          
        List<ContactInfo> infos=new ArrayList<ContactInfo>();  
                Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;   
                String[] projection = { ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,ContactsContract.CommonDataKinds.Phone.DATA1,"sort_key"};  
                Cursor cursor = mContext.getContentResolver().query(uri,projection,"sort_key COLLATE LOCALIZED asc limit " + pageSize + " offset " + currentOffset);  
                if (cursor != null) {  
                      
                    while (cursor.moveToNext()) {  
                          
                        ContactInfo info=new ContactInfo();  
                        String contactName = cursor.getString(0);  
                        String phoneNumber = cursor.getString(1);  
                        info.setContactName(contactName);  
                        info.setPhoneNumber(phoneNumber);  
                        infos.add(info);  
                        info=null;  
                    }  
                    cursor.close();  
                  
              
    }  
                return infos;  
    }  
      
    /** 
     * 获得系统联系人的所有记录数目 
     * @return 
     */  
    public int getAllCounts(){  
        int num=0;  
        // 使用ContentResolver查找联系人数据  
                Cursor cursor = mContext.getContentResolver().query(  
                    ContactsContract.Contacts.CONTENT_URI,null);  
                  
                // 遍历查询结果,获取系统中所有联系人  
                while (cursor.moveToNext())  
                {  
                    num++;  
                }  
                cursor.close();  
      
  
        return num;  
    }  
      
  
}  

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读