获取手机联系人数据方法


/** * 获取系统联系人数据方法 */private void initData() {//因为读取系统联系人,可能是一个耗时操作,放置到子线程中处理new Thread(){public void run() {//1,获取内容解析器对象ContentResolver contentResolver = getContentResolver();//2,做查询系统联系人数据库表过程(读取联系人权限)Cursor cursor = contentResolver.query(Uri.parse("content://com.android.contacts/raw_contacts"),new String[]{"contact_id"}, null, null, null);contactList.clear();//3,循环游标,直到没有数据为止while(cursor.moveToNext()){String id = cursor.getString(0);//Log.i(tag, "id = "+id);//4,根据用户唯一性id值,查询data表和mimetype表生成的视图,获取data以及mimetype字段Cursor indexCursor = contentResolver.query(Uri.parse("content://com.android.contacts/data"), new String[]{"data1","mimetype"}, "raw_contact_id = ?", new String[]{id}, null);//5,循环获取每一个联系人的电话号码以及姓名,数据类型HashMap hashMap = new HashMap();while(indexCursor.moveToNext()){String data = indexCursor.getString(0);String type = indexCursor.getString(1);//6,区分类型去给hashMap填充数据if(type.equals("vnd.android.cursor.item/phone_v2")){//数据非空判断if(!TextUtils.isEmpty(data)){hashMap.put("phone", data);}}else if(type.equals("vnd.android.cursor.item/name")){if(!TextUtils.isEmpty(data)){hashMap.put("name", data);}}}indexCursor.close();contactList.add(hashMap);}cursor.close();};}.start();}


更多相关文章

  1. 一句话锁定MySQL数据占用元凶
  2. ContentProvider简单用法
  3. OpenGL播放yuv数据流(着色器SHADER)-android(一)
  4. MediaMetadataRetriever类、方法以及使用详解
  5. Android中如何获取系统中所有的应用程序
  6. Android学习笔记(十四)
  7. Android(安卓)之AES加密,解密与后台进行数据交互
  8. https://maven.google.com 无法访问,无法获取 .pom
  9. Android获取当前的城市名的方法

随机推荐

  1. andriod线性布局部分用法
  2. android通过蓝牙连接打印机实现格式化打
  3. Android adb的常用命令
  4. 在 ubuntu 下编译 android 找不到头文件
  5. ANDROID Porting系列二、配置一个新产品
  6. Android主题和样式系统篇(上)
  7. ADT-bundle(Android Development Tools)
  8. Android(安卓)-- 补间动画
  9. android 引入jni 的so库的方法
  10. Android中自定义SeekBar来控制音量,并与系