zoukankan      html  css  js  c++  java
  • 读取联系人案例

      [1]data表  data1列里面存的是所有联系人的信息  raw_contact_id 列是用来区分一共有几条联系人信息 mimetype_id 列是用来区分数据类型 
      [2]row_contacts表 中contact_id就是data表的 raw_contact_id 
      
       查询联系人的步骤 
       [1]先查询row_contacts表 的contact_id列 我们就知道一共有几条联系人 
       [2]我根据contact_id去查询data表  查询data1列和mimetype
       [3]view_data 是由data表和mimetype表的组合 
     
    //查询联系人的工具类
    public class QueryContactsUtils {
    
        
        public static List<Contact> queryContacts(Context context){
            //[0]创建一个集合
            
            List<Contact>  contactLists = new ArrayList<Contact>();
            //[1]先查询row_contacts表 的contact_id列 我们就知道一共有几条联系人 
            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) {
                //创建javabean对象
                Contact contact = new Contact();
                
                contact.setId(contact_id);
                
                System.out.println("contact_id:"+contact_id);
                //[2]根据contact_id去查询data表  查询data1列和mimetype_id 
                
                //☆ ☆ ☆ ☆ 当我们在查询data表的时候 其实查询的是view_data的视图
                
                Cursor dataCursor = context.getContentResolver().query(dataUri, new String[]{"data1","mimetype"}, "raw_contact_id=?", new String[]{contact_id}, null);
                while(dataCursor.moveToNext()){
                    String data1 = dataCursor.getString(0);
                    String mimetype = dataCursor.getString(1);
                    //[3]根据mimetype 区分data1列的数据类型 
                    if ("vnd.android.cursor.item/name".equals(mimetype)) {
                        contact.setName(data1);
                    }else if ("vnd.android.cursor.item/phone_v2".equals(mimetype)) {
                        contact.setPhone(data1);
                    }else if ("vnd.android.cursor.item/email_v2".equals(mimetype)) {
                        contact.setEmail(data1);
                    }
                    
                    
                }
                
                //把javabean对象加入到集合中
                contactLists.add(contact);
                }
                
            }
            
            return contactLists;
            
        }
        
    }
    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            
            List<Contact> queryContacts = QueryContactsUtils.queryContacts(getApplicationContext());
            for (Contact contact : queryContacts) {
                System.out.println("contat:"+contact);
                
            }
            
            
            
        }
    
        
    
    }
    public class Contact {
    
        private String id;
        private String name;
        private String phone;
        private String email;
        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;
        }
        public String getEmail() {
            return email;
        }
        public void setEmail(String email) {
            this.email = email;
        }
        @Override
        public String toString() {
            return "Contact [id=" + id + ", name=" + name + ", phone=" + phone
                    + ", email=" + email + "]";
        }
        
        
        
        
        
        
    }
  • 相关阅读:
    游戏开发之游戏策划的基本原则
    Lua游戏脚本语言入门
    游戏策划之游戏心理学理论深入浅出
    微博的10大特征包括哪些?
    普米族求助,十万火急!!! 请大家给力!!!
    剑指微博营销,速创品牌传奇
    将网络推广进行到底
    浅谈如何利用微博进行网站推广(转)
    “土风计划”,陈哲另一个伟大事业
    快速增加微博粉丝的十六大技巧
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/6028423.html
Copyright © 2011-2022 走看看