`
sanfeng_chow
  • 浏览: 101578 次
  • 性别: 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这个过时的类

相关推荐

    android-2.1-part3

    4. 内容提供者:内容提供者负责数据共享,让不同应用之间可以访问和交换数据,如联系人、日历等。 三、开发者更新 1. API Level 7:Android 2.1对应的API Level为7,新增了许多接口和类,如Location API的改进,...

    android-2.1-part6

    在Android 2.1中,数据同步功能得到了优化,支持更多的同步协议,包括Exchange,使得企业用户可以方便地与Exchange服务器进行邮件、日历和联系人同步。 6. **多点触控支持** Eclair开始支持多点触控,这为游戏和...

    android-2.1-part5

    10. **云同步服务**:增强了Google账户同步功能,包括联系人、日历和应用数据的云备份和恢复,确保用户数据的安全。 11. **应用市场改进**:Android Market也进行了更新,增加了用户评价和评分功能,以及应用筛选和...

    andriod2.1.zip

    3. **联系人应用**:在2.1版本中,联系人应用得到了增强,支持联系人分组和快速搜索,使得管理大量联系人变得更为便捷。同时,联系人照片的显示也更加生动和直观。 4. **谷歌地图与导航**:Android 2.1集成的谷歌...

    Android 1.5~2.1相关API升级变化对比.doc

    Android 2.0.1的API变更主要涉及快速联系人标记风格(quickContactBadgeStyle)的改进,以及ACTION_CONFIGURATION_CHANGED广播的处理。现在,应用必须通过`registerReceiver(BroadcastReceiver, IntentFilter)`来...

    android日程安排及联系人与web同步

    Android的联系人应用允许用户管理他们的联系人信息,包括姓名、电话号码、电子邮件地址等。Android提供了Contacts Provider,一个内置的Content Provider,用于存储和检索联系人数据。开发者可以通过ContentResolver...

    动物的声音 3.7.2.1

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

    获取通讯录的信息,头像、姓名、号码等

    `contactsList`是这个列表的实例,而`addmap()`方法用于将新获取的联系人信息添加到这个列表中。 接下来,我们获取联系人信息的关键步骤是使用`ContentResolver`和`Cursor`。`ContentResolver`是Android系统用来...

    android 源代码

    4. **应用程序**:虽然主要关注的是系统组件,但源代码也包含了预装的一些基本应用,如联系人、日历、电话和设置应用。这对于学习如何构建遵循Android设计原则的应用非常有帮助。 5. **构建系统**:Android的构建...

    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 按照过滤条件查询通话...

    google android最全面的学习资料

    3)通过邮件直接联系项目发起人反馈信息;4)加入QQ交流群实时反馈问题。这些方式不仅降低了参与的门槛,还充分利用了社区的力量,让整个项目能够持续地获得改善。 参与翻译的成员名单中,可以看到很多GitHub ID,...

    android 读取电话号码

    通过上述代码示例,我们可以了解如何使用`ContentResolver`和`Cursor`来查询和获取联系人信息,以及如何正确地处理权限问题。这不仅有助于理解基本的Android编程概念,还能够帮助开发者实现更复杂的应用功能。

    android-support-v4 最新版本 解决Android6.0以上系统权限问题

    例如,如果应用需要访问用户的联系人信息,但在运行时未获取到相应的权限,可以调用`requestPermissions`来弹出权限请求对话框。`requestPermissions`接收两个参数:一个字符串数组,包含需要请求的权限;另一个是...

    把所有手机联系人导出到一个vcf文件中

    3. **解析联系人**:遍历Cursor,将每个联系人的信息转化为vCard对象。Android-vCard库提供了一个VCardBuilder类,可以帮助我们构建vCard实例: ```java VCardBuilder builder = new VCardBuilder(); while ...

    Android 编年史详细介绍

    Android 2.0/2.1 “爱曲奇/甜甜圈” - 发布时间:2009年10月/2010年1月 - 主要改进:增强了联系人管理功能,改善了浏览器和摄像头性能,支持多账户同步,并提高了整体稳定性。 ##### 3. Android 2.2 “冻酸奶” ...

    android权限

    - `android.permission.WRITE_CONTACTS`:允许应用修改用户的联系人信息。 同样地,在Android 6.0及更高版本中也需要进行动态权限请求。 ### 四、总结 通过对上述权限的详细介绍可以看出,在Android应用开发过程中...

    基于android系统的同学录的实现.doc

    在这样的背景下,开发基于Android系统的同学录应用显得尤为重要,它能够帮助用户高效地管理联系人信息,满足用户在社交、沟通中的需求。 1.2 研究现状 当前,市场上已经存在多种通讯录应用,如Google Contacts、...

    疯狂Android讲义源码

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

Global site tag (gtag.js) - Google Analytics