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 + "]";
        }
        
        
        
        
        
        
    }
  • 相关阅读:
    iOS TTF文件改变字体
    iOS CoreAnimation 核心动画
    iOS no visible @interface for 'UIButton' declares the selector errors
    iOS 如何通过CocoaPods添加第三方框架
    iOS AVAudioPlayer播放音乐
    iOS 一些常用代码的总结
    iOS 基础
    qworker 实例
    delphi RTTI 反射技术
    delphi IOUtils单元 处理文件路径相关
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/6028423.html
Copyright © 2011-2022 走看看