zoukankan      html  css  js  c++  java
  • 查询手机内联系人

    联系人的创建查询

    public class Query {
        //查询联系人的方法
            public static List<Contact> queryContact(Context context){
                //创建一个集合对象
                List<Contact> contacts=new ArrayList<Contact>();
                //先查询raw_contact表  这个表有几条联系人数据
                //由于联系人数据通过内容提供者暴露出来,所以我们可以通过内容解析操作数据库
                Uri uri=Uri.parse("content://com.android.contacts/raw_contacts");
                Uri dataUri=Uri.parse("content://com.android.contacts/data");
                Cursor cursor=context.getContentResolver().query(uri,new String[]{"contact_id"},null,null,null);
                while (cursor.moveToNext()){
                    String contact_id=cursor.getString(0);
                    if (contact_id!=null){
                        Contact contact=new Contact();
                        contact.setId(contact_id);
                        Cursor cursor1=context.getContentResolver().query(dataUri,new String[]{"data1","mimetype"},"raw_contact_id=?",new String[]{contact_id},null);
                        while (cursor1.moveToNext()){
                            String data1=cursor1.getString(0);
                            String mimetype=cursor1.getString(1);
                            //区分类型
                            if ("vnd.android.cursor.item/name".equals(mimetype)){
                                contact.setName(data1);
                            }
                            else if ("vnd.android.cursor.item/phone_v2".equals(mimetype)){
                                contact.setPhone(data1);
                            }
                        }
                        //把contact放入集合
                        contacts.add(contact);
                    }
    
    
    
                }
                return  contacts;
    
    
            }
    }

    创建一个Contact封装类

    public class Contact {
        private String id;
        private String name;
        private String phone;
    
        public String getId() {
            return id;
        }
    
        public void setId(String id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getPhone() {
            return phone;
        }
    
        public void setPhone(String phone) {
            this.phone = phone;
        }
    }
  • 相关阅读:
    python与常用模块pandas,numpy,matplotlib等库学习笔记-2019.02.07更新
    C++异常处理相关用法及底层机制
    C++ regex库常用函数及实例
    leetcode-2-两数相加(链表)
    leetcode-1-两数之和(三种方法)
    中序遍历(递归+迭代)
    C++实现四则运算器(带括号)
    C++实现四则运算器(无括号)
    Visual Studio2019 基于WSL的Linux C++开发
    Visual Studio 2019 基于Linux平台的C++开发
  • 原文地址:https://www.cnblogs.com/SongYongQian/p/7822730.html
Copyright © 2011-2022 走看看