读取手机本地全部联系人

    /**
     * 读取 联系人
     * @param context
     * @return
     */
    public static List<Map<String, String>> getLocalContacts(Context context) {

        List<Map<String, String>> datas = new ArrayList<Map<String,String>>();

        ContentResolver cr = context.getContentResolver();

        Uri uriRawContacts = Uri.parse("content://com.android.contacts/raw_contacts");

        Uri uriData = Uri.parse("content://com.android.contacts/data");

        Cursor rawContactsCursor = cr.query(uriRawContacts,
                new String[] { "contact_id"},
                null,
                null,
                null);

        String data1 = null;

        String mimetype = null;

        while(rawContactsCursor.moveToNext()){
            String contactId = rawContactsCursor.getString(rawContactsCursor.getColumnIndex("contact_id"));

            if(contactId != null){

                Map<String, String> data = new HashMap<String,String>();

                Cursor dataCursor = cr.query(uriData,
                        new String[]{"data1","mimetype"},
                        "contact_id=?",
                        new String[]{contactId},
                        null);

                while(dataCursor.moveToNext()){

                    data1 = dataCursor.getString(dataCursor.getColumnIndex("data1"));
                    mimetype = dataCursor.getString(dataCursor.getColumnIndex("mimetype"));

                    if("vnd.android.cursor.item/name".equals(mimetype)){
                        data.put("name", data1);
                        //Log.i(StaticDatas.CONTACTSHELPERUTIL_LOG_TAG, "name is " + data1);
                    }else if("vnd.android.cursor.item/phone_v2".equals(mimetype)){
                        data.put("phone", data1);
                        //Log.i(StaticDatas.CONTACTSHELPERUTIL_LOG_TAG, "phone is " + data1);
                    }
                }

                datas.add(data);

                dataCursor.close();
            }
        }

        rawContactsCursor.close();

        return datas;
    }
时间: 2024-12-11 13:54:36

读取手机本地全部联系人的相关文章

手势识别=读取手机联系人=ContentResolver-Day3

手势识别=读取手机联系人=ContentResolverDay32 mobile3.0 手机设置向导页面完成 选择器没有做完成 样式提取完成 自定义控件的优化继续 抽取父类Activity 完成 手机读取联系人. 问题堆栈 自定义控件深入理解自定义ListView 是时候研究框架和设计XUtils4个模块 明天仔细研究窗口过度动画. 4. 手势控制GestureDetector 手势在Activity里面有一个onTouchEvent(MotionEvent event)方法,参数就是用户在屏幕

Android 读取手机联系人、拨号、发送短信及长按菜单的操作

本示例实现了读取手机联系人,拨号.发送短信及长按出现菜单选项的操作↓ 1.Andrid项目结构图↓主要操作图中红色方框内的文件. 2.首先布局代码如下↓ a, main.xml 程序运行的主界面,主要用ListView列表控件展示手机联系人 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/a

怎么用getContentResolver().query读取手机短信

============问题描述============ 用这个能读取手机联系人并显示在一个list中,所有短信也是保存在手机里的一个数据库,同理能不能用这个方法读取并显示短信呢?求解 ============解决方案1============ 可以的,uri改为 "content://sms/"就是.

红米手机丢失的联系人该怎么找回?

随着科技的发展,手机也从以前少见变为如今人手一部的生活中不可或缺的的好帮手.现在的手机功能是越来却强大,许多软件的出现都是让的手机成为人们必备的生活用品,比如微信和支付宝.虽然说手机现在的功能越来越强大,但是手机最基础的功能依然是通讯功能.随着我们的增长,手机里的联系号码也是越来越多,我们不可能全部记在脑子里,记在手机里既方便,打电话的时候又快捷,如果不小心失手误删了联系人该怎么办呢? 第一步:在电脑的浏览器上搜索"互盾安卓恢复大师",把软件下载安装至电脑上,之后将误删联系人的安卓手机

Android手机获取通讯录联系人信息及短信广播实现

现在越来越多的android应用在注册时都要用到手机号码,通过获取手机验证码来完成注册.也有不少应用提供了手机通讯录备份功能,获得你的允许后把你的通讯录中的手机号码保存到服务器中,你要的时候又可以down下来,比如微信,QQ等就有这们的功能.那我们怎么样获取用户通讯录中的手机号码呢?Android已经为我们做好了准备: ---------------------------------获取通讯录联系人信息----------------------------------------------

安卓实现读取手机内存中的所有音乐

读取手机内存中的音乐信息需要做如下几步: 1)创建一个XML文件,存放获取到的信息,使用ListView控件 2)创建一个新的XML文件,对LIstView中的item对象进行布局 3)需要创建一个Music类用于存放需要获取的Music的主要信息 4)需要创建一个帮助类,用于获取手机中的音乐信息,并通过一个集合类传递获取到的信息 5)创建一个自定义适配器,用于加载ListView的每个子Item 6)实现对数据的加载,并返回到用户界面 主要的代码实现如下: 一.帮助类模块 public Arr

Android读取短信和联系人

读取短信和联系人经常会用到,要了解的是这是内容提供者的知识点 先说短信,要从数据库中获取数据,就要了解其结构 短信数据库在data-->data中的下面路径 它的表结构如下,有3个是我们要注意的 Java代码为 //获取内容提供者 ContentResolver contentResolver = getContentResolver(); //获取短信表的路径 Uri uri = Uri.parse("content://sms"); //设置要查询的列名 String[] l

微信小视频复制到手机本地Android APP 分享

因为需要将拍的宝宝的微信小视频上传到亲宝宝软件,每次去手动找文件比较麻烦,所以做了个微信视频复制到手机本地的APP,做工虽然粗糙,但是绝对实用, 下载地址 http://pan.baidu.com/s/1nuSNkCx 三个页面 首页是相册大图预览 第二页是微信视频预览和复制功能,长按单个视频可以单个复制,也可以按全部复制按钮 第三页是复制完成的视频预览

刷新手机的内存,即重新读取手机内存,以便识别内存文件

最近遇到一个问题:把图片push到手机内存之后,galley app不能实时读取手机的内存,所以刚push的文件显示不出来,只能adb reboot手机才能重新读取手机内存,这样就能在app里边看到. 总会重启手机不是很好,而且影响测试速度,所以找了个刷新手机内存的办法,即push完图片之后,就执行 adb shell am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///mnt/shell/emulated/0 即可,就能