`

获得联系人

 
阅读更多
 String contactId ;
    private List<PeopleInfo> getContactsInfo(){
    	List<PeopleInfo> list = new ArrayList<PeopleInfo>();
    	//得到ContentResolver对象
        ContentResolver cr = getContentResolver();
        //取得电话本中开始一项的光标
        Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
        PeopleInfo peopleInfo ;
        
        //向下移动光标
        while(cursor.moveToNext())
        {
            //取得联系人名字
            int nameFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);
            String contact = cursor.getString(nameFieldColumnIndex);
            
            peopleInfo = new PeopleInfo();
           
            
            //取得电话号码
            contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
            Cursor phone = cr.query(Phone.CONTENT_URI, null, Phone.CONTACT_ID + "=" + contactId, null, null);
            
            while(phone.moveToNext())
            {
                String PhoneNumber = phone.getString(phone.getColumnIndex(Phone.NUMBER));
                phoneString += ( PhoneNumber + "\n");
                peopleInfo.setPhone(phoneString);
            }
            phone.close();
            
            //获取联系人email         
            Cursor emails = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, 
            		null,                
            		ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = " + contactId,                  
            		null, null);         
            while (emails.moveToNext()) {
            	String email = emails.getString(emails.getColumnIndex(Email.DATA));
            	Log.d("test", email +  "| " );
            	contact = contact+ "\n" + email;
            }
            peopleInfo.setName(contact);
            emails.close();
            
            phoneString = "" ;
            list.add(peopleInfo);
        }
        
        cursor.close();
        
        return  list ;
    }

 获得联系人信息2、

 

 private void getContacts(){
    	//得到ContentResolver对象
        ContentResolver cr = getContentResolver();
        //取得电话本中开始一项的光标
        Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
        PeopleInfo peopleInfo ;
        
        //向下移动光标
        while(cursor.moveToNext())
        {
            //取得联系人名字
            int nameFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);
            String contact = cursor.getString(nameFieldColumnIndex);
            
            peopleInfo = new PeopleInfo();
            peopleInfo.setName(contact);
            
            //取得电话号码
            String ContactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
            Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, 
            			      ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + ContactId, null, null);
            
            while(phone.moveToNext())
            {
                String PhoneNumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                phoneString += ( PhoneNumber + "\n");
                peopleInfo.setPhone(phoneString);
            }
            phoneString = "" ;
            list.add(peopleInfo);
        }
        
        cursor.close();
        
    }

 获得联系人 3 、

 

public List<PeopleInfo> getContact( ) {
		List<PeopleInfo> list = new ArrayList<PeopleInfo>();
		//得到ContentResolver对象
        ContentResolver cr = getContentResolver();
		// 获得所有的联系人
		Cursor cur = cr.query(
				ContactsContract.Contacts.CONTENT_URI, null, null , null, null);
		// 循环遍历
		if (cur!=null&&cur.moveToFirst()) {

			int idColumn = cur.getColumnIndex(ContactsContract.Contacts._ID);

			int displayNameColumn = cur
					.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
			do {
				PeopleInfo peopleInfo = new PeopleInfo();
				// 获得联系人的ID号
				String contactId = cur.getString(idColumn);
				// 获得联系人姓名
				String disPlayName = cur.getString(displayNameColumn);
				peopleInfo.setName(disPlayName);

				// 查看该联系人有多少个电话号码。如果没有这返回值为0
				int phoneCount = cur.getInt(cur
						.getColumnIndex(ContactsContract.Contacts._ID));
				if (phoneCount > 0) {
					// 获得联系人的电话号码
					Cursor phones = cr.query(
							ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
							ContactsContract.CommonDataKinds.Phone.CONTACT_ID  + " = " + contactId,
							null, null);
					if (phones!=null&&phones.moveToFirst()) {
						do {
							// 遍历所有的电话号码
							 String phoneNumber = phones.getString(phones
							 .getColumnIndex(String.valueOf(ContactsContract.CommonDataKinds.Phone.NUMBER)));
							 phoneString += ( phoneNumber + "\n");
							 peopleInfo.setPhone(phoneString);

						} while (phones.moveToNext());
						phoneString = "" ;
					}
					phones.close();
				}
				list.add(peopleInfo);
			} while (cur.moveToNext());
			cur.close();
		}
		
		return list;
	}

 

分享到:
评论

相关推荐

    获得联系人代码

    在"黑马28期得到联系人代码"这个项目中,我们可以推测它可能包含了一系列的编程教程或示例代码,旨在帮助初学者了解如何在不同的环境下操作联系人数据。以下是一些可能涉及的知识点: 1. 数据结构与数据模型:联系...

    Android学习之通过content provider获得联系人

    这篇博客"Android学习之通过content provider获得联系人"将引导我们深入理解如何使用Content Provider来访问和操作设备上的联系人数据。Content Provider作为Android四大组件之一,是跨应用数据交换的重要桥梁。 ...

    mobile下用c#获得联系人包括SIM卡联系人号码

    在移动设备上,尤其是Windows Mobile或旧版的Android设备中,使用C#获取联系人信息,包括SIM卡上的联系人电话号码,是一项常见的任务。在这些系统中,开发者可以利用.NET Compact Framework提供的API来访问手机的...

    android 联系人 SIM卡 最近联系人 通讯录 获取源代码

    2. 根据通话记录中的`NUMBER`字段,对应到联系人表,得到最近联系人的信息。 四、获取源代码 `ContactsQuery`很可能是一个包含上述功能的源码文件,可能包括了获取联系人、SIM卡联系人和最近联系人的代码。这个...

    安卓获取联系人列表

    在安卓平台上,获取联系人列表是一项常见的功能,尤其对于那些需要与用户通讯录进行交互的应用而言,例如社交应用、邮件客户端等。这个标题"安卓获取联系人列表"指的是在Android系统中如何通过编程方式访问和读取...

    Android联系人4--联系人查询

    在Android系统中,联系人管理是一项重要的功能,它允许用户存储、查看和管理他们的联系人信息。本节我们将深入探讨“Android联系人4--联系人查询”,主要关注2.0及以后版本的查询模式,同时也会提及其中存在的效率...

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

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

    android 联系人模块

    在Android平台上,联系人模块是应用开发中的一个重要组成部分,它允许用户管理他们的个人联系信息,如姓名、电话号码、电子邮件地址等。对于初学者来说,理解并实现这一功能可以帮助他们更好地掌握Android应用开发的...

    Android向通讯录中的联系人发邮件.rar

    Android向通讯录中指定的某个联系人发邮件,代码利用 Android 提供的Intent 接口android.... 用户可以先把手动输入邮箱,也可以长按邮箱文本框跳到联系人那里找到联系人,得到联系人的邮箱,后返回;  发送邮件。

    Android批量导入联系人到手机通讯录

    // 解析TXT文件得到联系人列表 for (Contact contact : contacts) { executor.execute(new ImportContactTask(contact)); // 将导入任务提交到线程池 } executor.shutdown(); // 提交所有任务后,关闭线程池 ``` ...

    联系人效果分组效果

    在IT行业中,联系人管理是个人和企业日常工作中不可或缺的一部分,尤其在移动设备和智能通讯系统广泛应用的今天。"联系人效果分组效果"这一概念,主要涉及到的是如何有效地组织和展示联系人信息,以便用户能够更高效...

    基于手机联系人的无线社区-91sense 抢占手机桌面战略

    - **价值诱因**:安装91秀后,用户可以自动获得联系人来电头像。 - **病毒性传播**:通过有效传达价值、降低安装成本等方式鼓励用户邀请更多好友加入。 ##### 4.2 维系社区 - **高频接触点**:如打电话、发送短信等...

    Android获取联系人

    // 权限已获得,可以进行联系人获取操作 } else { // 用户拒绝了权限请求,可能需要提示用户并引导他们手动开启权限 } } } ``` 在处理完联系人数据后,如果希望在自己的应用中展示这些信息,可以创建自定义...

    Android开发之针对联系人的封装

    在Android应用开发中,针对联系人的封装是一项常用且重要的任务,尤其对于那些需要与用户通讯录集成的应用。本文主要探讨了如何在Android中创建一个独立的联系人模块,以简化获取和处理联系人的过程,同时提供了封装...

    Android获取联系人列表Demo

    一旦获得权限,我们调用`loadContacts()`方法来获取联系人列表: ```java private void loadContacts() { Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null...

    获取手机联系人的简单DEMO

    此外,考虑到隐私问题,对于读取联系人权限的请求,应用应该提供清晰的提示和解释,以获得用户的明确同意。 在AppTest项目中,可能包含了一个运行这个DEMO的测试应用,你可以通过运行它来理解整个过程。学习并理解...

    Android读取通讯录中设置邮件的联系人

    在Android平台上,获取通讯录中的联系人信息是常见的功能需求,尤其当需要处理与电子邮件相关的应用时。这个DEMO展示了如何有效地读取那些在联系人信息中设置了电子邮件地址的联系人。下面我们将深入探讨实现这一...

    android加载联系人

    在Android系统中,加载联系人是一项基础且重要的功能,它涉及到用户与设备间的基本交互。本文将深入探讨Android加载联系人的整个流程,以及在此过程中涉及的相关类和数据库查询技术。 首先,Android系统的联系人...

    基于android studio的读取联系人并可点击拨打电话

    这个项目,"基于android studio的读取联系人并可点击拨打电话",显然是一个教学或示例项目,它借鉴了郭霖的畅销书《第一行代码》中的方法。下面将详细讲解如何实现这一功能。 首先,我们需要了解Android的权限管理...

    用MFC编写的联系人列表

    在这款联系人列表应用中,MFC的威力得到了充分展现。首先,程序界面设计遵循了Windows标准用户界面,提供了一种直观、易用的交互体验。通过MFC的CWnd、CDialog、CButton、CEdit等类,开发者可以轻松创建窗口、对话框...

Global site tag (gtag.js) - Google Analytics