`
atmus
  • 浏览: 22938 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

android获取电话、邮件信息

 
阅读更多
  今天讲讲我这2天在研究的问题,2.0以上操作联系人的信息,跟1.5是有区别的,我查了很多资料,总结了下,见代码将吧。
   首先是查询联系人基本信息,2.0查询的联系人信息URI为ContactsContract.Contacts.CONTENT_URI。
ContentResolver cr = getContentResolver();
        Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
                null, null, null, null);
        if (cur.getCount() > 0) {
            while (cur.moveToNext()) {
                String id = cur.getString(
                        cur.getColumnIndex(ContactsContract.Contacts._ID));//联系人ID
        String name = cur.getString(
                        cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));//联系人名字
                if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
//号码查询(相关API:http://androidappdocs.appspot.com/reference/android/provider/ContactsContract.CommonDataKinds.Phone.html)
      //  判断是否有联系人号码 ContactsContract.Contacts.HAS_PHONE_NUMBER=1为至少有一个,0为没有,接下去就可以决定是否查询号码啦。
         Cursor pCur = cr.query(
                                   ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
                     ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?",
                                          new String[]{id}, null);
                           while (pCur.moveToNext()) {
                          // 做些操作
                        String phoneNumber= phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));  
                      }
                          pCur.close();
              }
            }
        }

//Email查询(相关API:http://androidappdocs.appspot.com/reference/android/provider/ContactsContract.CommonDataKinds.Email.html)
Cursor emailCur = cr.query(
                ContactsContract.CommonDataKinds.Email.CONTENT_URI,
                null,
                ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?",
                new String[]{id}, null);
        while (emailCur.moveToNext()) {
      // 邮箱
     String email = emailCur.getString(emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
      // 邮箱类型(HOME,WORK,OTHOR.CUSTOM,MOBILE)
      String emailType = emailCur.getString(
                      emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE));
        }
        emailCur.close();

//Note查询(相关API:http://androidappdocs.appspot.com/reference/android/provider/ContactsContract.CommonDataKinds.Note.html)
String noteWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?";
        String[] noteWhereParams = new String[]{id,
                ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE};
                Cursor noteCur = cr.query(ContactsContract.Data.CONTENT_URI, null, noteWhere, noteWhereParams, null);
        if (noteCur.moveToFirst()) {
            String note = noteCur.getString(noteCur.getColumnIndex(ContactsContract.CommonDataKinds.Note.NOTE));
        }
        noteCur.close();

//邮政地址查询(相关API:http://androidappdocs.appspot.com/reference/android/provider/ContactsContract.CommonDataKinds.StructuredPostal.html)String addrWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?";
        String[] addrWhereParams = new String[]{id,
                ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE};
        Cursor addrCur = cr.query(ContactsContract.Data.CONTENT_URI,
                null, where, whereParameters, null);
        while(addrCur.moveToNext()) {
//邮政信箱
        String poBox = addrCur.getString(
                     addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POBOX));
//街道
        String street = addrCur.getString(
                     addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET));
//城市
          String city = addrCur.getString(
                     addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY));         
//地区
String state = addrCur.getString(
                     addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION));        
//邮政编码
String postalCode = addrCur.getString(
                     addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE));        
//国家
String country = addrCur.getString(
                     addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY));        
//类型
String type = addrCur.getString(
                     addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.TYPE));
        }
        addrCur.close();

//IM查询(相关API:http://androidappdocs.appspot.com/reference/android/provider/ContactsContract.CommonDataKinds.Im.html)
String imWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?";
        String[] imWhereParams = new String[]{id,
            ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE};
        Cursor imCur = cr.query(ContactsContract.Data.CONTENT_URI,
            null, imWhere, imWhereParams, null);
        if (imCur.moveToFirst()) {
            String imName = imCur.getString(
                 imCur.getColumnIndex(ContactsContract.CommonDataKinds.Im.DATA));
            String imType;
            imType = imCur.getString(
                 imCur.getColumnIndex(ContactsContract.CommonDataKinds.Im.TYPE));
        }
        imCur.close();


//组织查询(相关API:http://androidappdocs.appspot.com/reference/android/provider/ContactsContract.CommonDataKinds.Organization.html)
String orgWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?";
        String[] orgWhereParams = new String[]{id,
                ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE};
        Cursor orgCur = cr.query(ContactsContract.Data.CONTENT_URI,
                null, orgWhere, orgWhereParams, null);
        if (orgCur.moveToFirst()) {
//组织名
          String orgName = orgCur.getString(orgCur.getColumnIndex(ContactsContract.CommonDataKinds.Organization.DATA));
//职位
          String title = orgCur.getString(orgCur.getColumnIndex(ContactsContract.CommonDataKinds.Organization.TITLE));
        }
        orgCur.close();

转载http://www.cmd100.com/bbs/thread-1204-1-1.html
分享到:
评论

相关推荐

    android获取手机通讯录所有字段

    获取手机通讯录所有字段,姓名,手机号,电话号,公司电话,邮件等

    Android开发实验---通讯录.docx

    主要功能可包括: (1)可以添加、删减联系人 (2)联系人的信息包括:姓名、手机号码、工作单位、群组、电子邮件、手机铃声 (3)选择联系人后,可以快速进行操作,如:拨打电话发送短信、查看详细、移出群组、移动...

    android 联系人管理

    联系人管理指的是组织良好的联系人信息,即与客户的沟通、会议、电话、电子邮件,以及通过网站的交互。Android联系人管理应用能存储所有这些重要信息,使用户在需要时能快速方便地检索到它们。联系人管理模块不仅在...

    Android根据电话号码获得联系人头像实例代码

    在日常Android手机的使用过程中,根据电话号码获得联系人头像,是经常会碰到的问题。本文即以实例形式讲述了Android根据电话号码获得联系人头像是实现代码。分享给大家供大家参考之用。具体方法如下: 首先,通过...

    Android开发应用实战详解源代码

    5.15 获取sim卡内信息 5.15.1 sim卡简介 5.15.2 实现原理 5.15.3 具体实现 5.16 触屏拨号 5.17 获取正在运行的程序 5.18 变换屏幕的方向 5.19 获取设备信息 5.20 小结 第6章 手机自动服务 6.1 实现短信提醒 6.2 剩余...

    新版Android开发教程.rar

    Android 进一步推进了 " 随时随地为每个人提供信息 " 这一企 业 目标的实现。 � Open Handset Alliance 汇集了多家业界巨头。运营商如: China Mobile 、 NTT DoCoMo 、 Vodafone 、 T-M obile 等;设备制造商如 ...

    《Google Android SDK开发范例大全(第3版)》.pdf

     全书共分11章,主要以范例集的方式来讲述android的知识点,详细介绍了开发android的人机交互界面、android常用的开发控件、android手机收发短信等通信服务、开发android手机的自动服务功能和娱乐多媒体功能以及...

    Google Android SDK开发范例大全(第3版) 1/5

    完整的手机数据存取功能:铃声模式设置、震动控制、WiFi服务、屏幕旋转、电池计量、温度测量、电信网络信息、SIM卡信息、拨打电话、短信解析、通讯录联系人、电子罗盘、屏幕手写等手机控制功能。 系统服务及研发的...

    精通ANDROID 3(中文版)1/2

    1.5.6 Android媒体和电话组件  1.5.7 Android Java包  1.6 利用Android源代码  1.7 本书的示例项目  1.8 小结  第2章 设置开发环境  2.1 设置环境  2.1.1 下载JDK 6  2.1.2 下载Eclipse 3.6  ...

    Google Android SDK开发范例大全(第3版) 4/5

    完整的手机数据存取功能:铃声模式设置、震动控制、WiFi服务、屏幕旋转、电池计量、温度测量、电信网络信息、SIM卡信息、拨打电话、短信解析、通讯录联系人、电子罗盘、屏幕手写等手机控制功能。 系统服务及研发的...

    Google Android SDK开发范例大全(第3版) 3/5

    完整的手机数据存取功能:铃声模式设置、震动控制、WiFi服务、屏幕旋转、电池计量、温度测量、电信网络信息、SIM卡信息、拨打电话、短信解析、通讯录联系人、电子罗盘、屏幕手写等手机控制功能。 系统服务及研发的...

    Google Android SDK开发范例大全(第3版) 5/5

    完整的手机数据存取功能:铃声模式设置、震动控制、WiFi服务、屏幕旋转、电池计量、温度测量、电信网络信息、SIM卡信息、拨打电话、短信解析、通讯录联系人、电子罗盘、屏幕手写等手机控制功能。 系统服务及研发的...

    Google Android SDK开发范例大全(第3版)part2

     全书共分11章,主要以范例集的方式来讲述Android的知识点,详细介绍了开发Android的人机交互界面、Android常用的开发控件、Android手机收发短信等通信服务、开发Android手机的自动服务功能和娱乐多媒体功能以及...

    android开发实例大全_王东华

    本书以Android应用程序的开发为主题,并结合真实的案例向读者详细介绍了Android的基本组件的使用及应用程序开发的整个流程。本书的讲述由浅入深,实例全面并典型,几乎囊括了所有和Android应用相关的项目。全书分为...

    android Intent实例

    2009-01-18 Android应用协调器------Intent 关键字: android intent实例 刚起步的时候经常困扰我们的是一些...用获取到的Intent直接调用startActivity(returnIt)就ok了。 今天就说这么多,有更大需求的可以看源代码。

    Android开发资料合集-World版!

    9.56、获取本机电话号码 280 9.57、获得手机联系人 280 9.58、2.0以上版本查询联系人详细信息 282 9.59、2.0以上版本添加联系人 285 9.60、拨打电话 287 9.61、发送SMS、MMS 287 9.62、监听电话被呼叫状态 288 9.63...

    Android 开发技巧

    9.56、获取本机电话号码 280 9.57、获得手机联系人 280 9.58、2.0以上版本查询联系人详细信息 282 9.59、2.0以上版本添加联系人 285 9.60、拨打电话 287 9.61、发送SMS、MMS 287 9.62、监听电话被呼叫状态 288 9.63...

    精通Android 3 (中文版)2/2

    1.5.6 Android媒体和电话组件  1.5.7 Android Java包  1.6 利用Android源代码  1.7 本书的示例项目  1.8 小结  第2章 设置开发环境  2.1 设置环境  2.1.1 下载JDK 6  2.1.2 下载Eclipse 3.6  ...

    google android sdk开发范例大全 第二版 PDF 光盘代码

     6.7 有来电,发送邮件通知   6.8 存储卡剩余多少容量   6.9 访问本机内存与存储卡   6.10 实现可定时响起的闹钟   6.11 黑名单来电自动静音   6.12 手机翻背面即静音震动   6.13 指定...

Global site tag (gtag.js) - Google Analytics