`
sanfeng_chow
  • 浏览: 99723 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

android2.1获得联系人信息

阅读更多

貌似从android2.0开始,联系人的API做了很大的调整。

People接口由ContactsContract.Contacts代替。

闲话不多说看代码。

 public void getContact(){
    	 //获得所有的联系人
    	Cursor cur = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
    	//循环遍历
    	if (cur.moveToFirst()) {
    		int idColumn  = cur.getColumnIndex(ContactsContract.Contacts._ID);
    		
    		int displayNameColumn = cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
    		do {
    		    //获得联系人的ID号
    		   String contactId = cur.getString(idColumn);
    		   //获得联系人姓名
    		   String disPlayName = cur.getString(displayNameColumn);
    		   //查看该联系人有多少个电话号码。如果没有这返回值为0
    		   int phoneCount = cur.getInt(cur
						.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
    		   if(phoneCount>0){
    			   //获得联系人的电话号码
	    		   Cursor phones = getContentResolver().query(
							ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
							null,
							ContactsContract.CommonDataKinds.Phone.CONTACT_ID
									+ " = " + contactId, null, null);
	    		   if(phones.moveToFirst()){
	    			   do{
	    				   //遍历所有的电话号码
	    				   String phoneNumber= phones.getString(phones  
									.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
	    				   System.out.println(phoneNumber);
	    			   }while(phones.moveToNext());
	    		   }
    		   
    		   }

            } while (cur.moveToNext());

    	}
     }

    在联系人的电话号码中有很多种,如果只想获得手机号码。代码如下:

  Cursor phones = mContext.getContentResolver().query(
				ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
				null,
				ContactsContract.CommonDataKinds.Phone.CONTACT_ID
						+ " = " + contactId +" and "+ContactsContract.CommonDataKinds.Phone.TYPE+"="+ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE, null, null);
 

 

 

 

 

 

 

 

 

分享到:
评论
5 楼 刚开始吧 2010-08-06  
补充一下我在mainfest.xml中加入权限了。
4 楼 刚开始吧 2010-08-06  
我把你的代码放到我这里运行了一下,但是运行的时候出现意外终止情况,不知道什么原因。(代码本身没有错误,但是就是运行的时候出现 意外终止 ) 我的球球775716364。希望楼主可以加我。 不胜感激!
3 楼 zhonggeneral 2010-07-18  
sanfeng_chow 写道
zhonggeneral 写道
楼主知道怎样用ContactsContract添加联系人吗?要求不用People这个过时的类

我上面的就是用的ContactsContract这个类啊

楼主仅仅是查询,这块代码官方网站例子也有,我是说用ContactsContract增(我已经实现,但一些细节还是搞不明白)和改
2 楼 sanfeng_chow 2010-03-08  
zhonggeneral 写道
楼主知道怎样用ContactsContract添加联系人吗?要求不用People这个过时的类

我上面的就是用的ContactsContract这个类啊
1 楼 zhonggeneral 2010-03-07  
楼主知道怎样用ContactsContract添加联系人吗?要求不用People这个过时的类

相关推荐

    动物的声音 3.7.2.1

    权限的解释:*修改SD / USB存储内容:能够将它复制到SD卡或USB存储和写入临时文件共享时的声音总上网查看网络状态:AdMob广告,匿名统计数据和获得的“最流行”列表*读取和写入联系人数据:可以为特定的联系人设置...

    Android开发案例驱动教程 配套代码

    11.3.2 通过联系人ID查询联系人的Email 258 11.3.3 按照过滤条件查询Email 259 11.3.4 查询联系人的电话 261 11.4 通过Content Provider访问通话记录 262 11.4.1 查询通话记录 262 11.4.2 按照过滤条件查询通话...

    Android智能手机调研报告.doc

    Android 2.0-2.1改进如下: ·优化硬件速度 ·"Car Home"程序 ·支持更多的屏幕分辨率 ·改良的用户界面 ·新的浏览器的用户接口和支持HTML5 ·新的联系人名单 ·更好的白色/黑色背景比率 ·改进Google Maps3.1.2 ...

    Android高级编程--源代码

    9.1.4 在线状态和联系人列表简介 282 9.1.5 管理聊天会话 285 9.1.6 发送和接收数据信息 289 9.2 SMS简介 291 9.2.1 在应用程序中使用SMS 291 9.2.2 发送SMS信息 291 9.2.3 监听SMS消息 294 9.2.4 紧急响应...

    Android实训报告基于Android游戏开发.docx

    生产实习一方面巩固了书本上学到的理论知识,另一方面,可获得在书本上不易了解和不易学到的生产现场的实际知识,使我们在实践中得到提高实训环节对于提高学生的综合能力和全面素质具有重要意义。 1.2、研究现状...

    疯狂Android讲义源码

     联系人 355  9.2.2 使用ContentProvider管理  多媒体内容 360  9.3 实现ContentProvider 364  9.3.1 创建ContentProvider的步骤 364  9.4 监听ContentProvider的数据  改变 370  9.4.1 ContentObserver简介...

    《仓库管理系统》数据库设计.doc

    名字:客户信息 描述:仓库货物客户的基本信息 定义:客户信息=公司名称+联系人姓名+联系人地址+城市名称+地区名称+邮政编码+联系 电话+传真号码+公司主页 名字:供应商信息 描述:仓库货物供应商的基本信息 定义:...

    Android开发资料合集-World版!

    9.58、2.0以上版本查询联系人详细信息 282 9.59、2.0以上版本添加联系人 285 9.60、拨打电话 287 9.61、发送SMS、MMS 287 9.62、监听电话被呼叫状态 288 9.63、监听要拨打的电话(可以后台进行修改号码) 290 9.64、...

    Android 开发技巧

    9.58、2.0以上版本查询联系人详细信息 282 9.59、2.0以上版本添加联系人 285 9.60、拨打电话 287 9.61、发送SMS、MMS 287 9.62、监听电话被呼叫状态 288 9.63、监听要拨打的电话(可以后台进行修改号码) 290 9.64、...

    《仓库管理系统》数据库设计(1).doc

    名字:客户信息 描述:仓库货物客户的基本信息 定义:客户信息=公司名称+联系人姓名+联系人地址+城市名称+地区名称+邮政编码+联系 电话+传真号码+公司主页 名字:供应商信息 描述:仓库货物供应商的基本信息 定义:...

    疯狂Android讲义.part2

    联系人 355 9.2.2 使用ContentProvider管理 多媒体内容 360 9.3 实现ContentProvider 364 9.3.1 创建ContentProvider的步骤 364 9.4 监听ContentProvider的数据 改变 370 9.4.1 ContentObserver简介 370 9.5 本章小...

    疯狂Android讲义.part1

    联系人 355 9.2.2 使用ContentProvider管理 多媒体内容 360 9.3 实现ContentProvider 364 9.3.1 创建ContentProvider的步骤 364 9.4 监听ContentProvider的数据 改变 370 9.4.1 ContentObserver简介 370 9.5 本章小...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已...

    Development.apk(Android Dev Tools)

    Android 键盘/Android 系统/API Domes/Certificate Installer(证书安装)/com.android.gestuer.builder()/com.android.sdksetup()/Custom Locale()/Dev Tools(开发工具)/Example Wallpapers(墙纸式样)/HTML查看器/...

    android手机音乐播放器实训报告final.doc

    课程负责人签名: 年 月 日 目录 第一章 引言 6 1.1 目的及范围 6 第二章 需求说明 7 2.1 系统参与者 7 2.2 系统用例 7 2.3领域模型分析 8 第三章 架构设计说明 11 3.1 逻辑视图 11 3.2 进程视图 11 3.3 开发视图 ...

    JAVA上百实例源码以及开源项目

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    JAVA上百实例源码以及开源项目源代码

    关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...

Global site tag (gtag.js) - Google Analytics