获取手机通讯录跟sim卡通讯录

简介:

    /** 获取库Phone表字段 **/
    private static final String[] PHONES_PROJECTION = new String[] { Phone.DISPLAY_NAME, Phone.NUMBER };

    private List<ContactsModel> contactsModels = new ArrayList<ContactsModel>();


/** 得到手机通讯录联系人信息 **/

    private void getPhoneContacts() {
        ContentResolver resolver = mContext.getContentResolver();
        // 获取手机联系人
        Cursor phoneCursor = resolver.query(Phone.CONTENT_URI, PHONES_PROJECTION, null, null, null);
        if (phoneCursor != null) {
            while (phoneCursor.moveToNext()) {
                ContactsModel contactsModel = new ContactsModel();
                String contactName = phoneCursor.getString(0);
                // 得到手机号码
                String phoneNumber = phoneCursor.getString(1);
                // 当手机号码为空的或者为空字段 跳过当前循环
                if (TextUtils.isEmpty(phoneNumber))
                    continue;
                // 得到联系人名称
                contactsModel.setContactName(contactName);
                contactsModel.setPhoneNumber(phoneNumber);
                contactsModels.add(contactsModel);
            }
            phoneCursor.close();
        }
    }

    /** 得到手机SIM卡联系人人信息 **/
    private void getSIMContacts() {
        ContentResolver resolver = mContext.getContentResolver();
        // 获取Sims卡联系人
        Uri uri = Uri.parse("content://icc/adn");
        Cursor phoneCursor = resolver.query(uri, PHONES_PROJECTION, null, null, null);
        if (phoneCursor != null) {
            while (phoneCursor.moveToNext()) {
                ContactsModel contactsModel = new ContactsModel();
                // 得到手机号码
                String contactName = phoneCursor.getString(0);
                String phoneNumber = phoneCursor.getString(1);
                // 当手机号码为空的或者为空字段 跳过当前循环
                if (TextUtils.isEmpty(phoneNumber))
                    continue;
                contactsModel.setContactName(contactName);
                contactsModel.setPhoneNumber(phoneNumber);
                contactsModels.add(contactsModel);
            }
            phoneCursor.close();
        }

    }



联系人model类

public class ContactsModel {

    private String contactName;
    private String phoneNumber;

    public String getContactName() {
        return contactName;
    }

    public void setContactName(String contactName) {
        this.contactName = contactName;
    }

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

}


相关文章
方法:如何一次性把大量号码一键导入手机通讯录?
第一步:一堆大量号码一键导入手机通讯录,需要借助软件,金芝号码提取导入助手。第二步:在电脑上打开你的表格,里面的大量号码你先复制好,如果有对应的铭字你也复制好,然后分别粘贴进前面说的软件,接着你点软件上的“通讯录转换”,就可以得到一个通讯录文件。第三步:你从电脑上把这个文件发给你的手机,在手机上打开,就可以一键批量把大量号码导入通讯录。电脑文件怎么发送给手机,这个很容易呀,你的电脑上不是有电脑Q或者电脑微吗?发给你的手机微或者手机q就ok了,多方便!
方法:如何一次性把大量号码一键导入手机通讯录?
方法:怎么快速把excel表格里电话号码导入手机通讯录?
第I步:打开电脑软件:金芝号码提取导入助手。你把excel表格打开,复制里面的号码和人铭,分别粘贴到软件上。第II步:点击软件下方的“转成通讯录”,就可以转换出来一个文件。你从电脑上把这个文件,发给你的手机,在手机上打开这个文件,就可以快速把excel表格里号码导入通讯录。第III步:怎么把电脑上的文件发给你手机,这个不用我教吧。电脑某信电脑q,发给你的手机某信手机q,不就可以了吗?
方法:怎么快速把excel表格里电话号码导入手机通讯录?
|
4月前
|
存储 数据可视化 C语言
【C语言】C语言 手机通讯录系统的设计 (源码+数据+论文)【独一无二】
【C语言】C语言 手机通讯录系统的设计 (源码+数据+论文)【独一无二】
|
7月前
|
Android开发
【苹果安卓通用】xlsx 和 vCard 文件转换器,txt转vCard文件格式,CSV转 vCard格式,如何批量号码导入手机通讯录,一篇文章说全
本文介绍了如何快速将批量号码导入手机通讯录,适用于企业客户管理、营销团队、活动组织、团队协作和新员工入职等场景。步骤包括:1) 下载软件,提供腾讯云盘和百度网盘链接;2) 打开软件,复制粘贴号码并进行加载预览和制作文件;3) 将制作好的文件通过QQ或微信发送至手机,然后按苹果、安卓或鸿蒙系统的指示导入。整个过程简便快捷,可在1分钟内完成。
163 6
|
7月前
|
Android开发
【通讯录教程】苹果安卓鸿蒙系统通用,如何大批量导入手机号码到手机的通讯录,下面教你方法,只需1分钟搞定几万个号码的导入手机电话本
该文介绍了一种快速批量导入手机通讯录的方法,适用于处理大量手机号的需求,如微商管理、客户资料整理等。在QQ同步助手开始收费后,提供了免费的替代方案。步骤包括:下载批量导入软件(链接提供腾讯云盘和百度网盘地址),清空通讯录(非必需),制作符合格式的通讯录文件,并按操作系统(苹果、安卓或鸿蒙)进行导入。整个过程只需1分钟,简便快捷。
519 2
|
JavaScript 前端开发 安全
手把手教你用js实现手机通讯录功能(附源码)
手把手教你用js实现手机通讯录功能(附源码)
372 1
|
存储 算法 C语言
C语言实现建立手机通讯录(顺序结构)
C语言实现建立手机通讯录(顺序结构)
247 1
|
存储 算法 C语言
【创作赢红包】C语言实现建立手机通讯录(链式结构)
【创作赢红包】C语言实现建立手机通讯录(链式结构)
116 0
|
iOS开发
iOS 获取手机中SIM卡数量
iOS 获取手机中SIM卡数量
248 0
|
XML 前端开发 Android开发
Android使用RecycleView实现魅族手机通讯录界面
本文主要是通过模仿魅族通讯录,学习一下RecycleView的基本用法
160 0