zoukankan      html  css  js  c++  java
  • 读取手机本地全部联系人

        /**
         * 读取 联系人
         * @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;
        }
  • 相关阅读:
    VS code 配置 PySide6的UI开发环境
    Python及PySide6学习网址
    NOIP2021模拟赛10.12 题解
    P2388 阶乘之乘 题解
    P3992 [BJOI2017]开车
    「NOIP2021模拟赛四 B」Polyline 题解
    P7115 [NOIP2020] 移球游戏 题解
    P7114 [NOIP2020] 字符串匹配 题解
    P3391 【模板】文艺平衡树 题解
    致夏天
  • 原文地址:https://www.cnblogs.com/cbooy/p/4740087.html
Copyright © 2011-2022 走看看