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

android获取手机中的短信和,android获取手机通讯录联系人和号码

阅读更多
// 获得所有的联系人
		Cursor cur = getContentResolver().query(
				ContactsContract.Contacts.CONTENT_URI,
				null,
				null,
				null,
				ContactsContract.Contacts.DISPLAY_NAME
						+ " COLLATE LOCALIZED ASC");
		// 循环遍历
				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));
						Log.i("username", disPlayName);
						sb.append(disPlayName).append(":"); 
						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));
									String phoneType = phones
											.getString(phones
													.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
									Log.i("phoneNumber", phoneNumber);
									Log.i("phoneType", phoneType);
									sb.append(phoneNumber).append(","); 
								} while (phones.moveToNext());
							}
						}

						// 获取该联系人邮箱
						Cursor emails = getContentResolver().query(
								ContactsContract.CommonDataKinds.Email.CONTENT_URI,
								null,
								ContactsContract.CommonDataKinds.Phone.CONTACT_ID
										+ " = " + contactId, null, null);
						if (emails.moveToFirst()) {
							do {
								// 遍历所有的电话号码
								String emailType = emails
										.getString(emails
												.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE));
								String emailValue = emails
										.getString(emails
												.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));

								Log.i("emailType", emailType);
								Log.i("emailValue", emailValue);
							} while (emails.moveToNext());
						}

						// 获取该联系人IM
						Cursor IMs = getContentResolver().query(
								Data.CONTENT_URI,
								new String[] { Data._ID, Im.PROTOCOL, Im.DATA },
								Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='"
										+ Im.CONTENT_ITEM_TYPE + "'",
								new String[] { contactId }, null);
						if (IMs.moveToFirst()) {
							do {
								String protocol = IMs.getString(IMs
										.getColumnIndex(Im.PROTOCOL));
								String date = IMs
										.getString(IMs.getColumnIndex(Im.DATA));
								Log.i("protocol", protocol);
								Log.i("date", date);
							} while (IMs.moveToNext());
						}

						// 获取该联系人地址
						Cursor address = getContentResolver()
								.query(ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI,
										null,
										ContactsContract.CommonDataKinds.Phone.CONTACT_ID
												+ " = " + contactId, null, null);
						if (address.moveToFirst()) {
							do {
								// 遍历所有的地址
								String street = address
										.getString(address
												.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET));
								String city = address
										.getString(address
												.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY));
								String region = address
										.getString(address
												.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION));
								String postCode = address
										.getString(address
												.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE));
								String formatAddress = address
										.getString(address
												.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS));
								Log.i("street", street);
								Log.i("city", city);
								Log.i("region", region);
								Log.i("postCode", postCode);
								Log.i("formatAddress", formatAddress);
							} while (address.moveToNext());
						}

						// 获取该联系人组织
						Cursor organizations = getContentResolver().query(
								Data.CONTENT_URI,
								new String[] { Data._ID, Organization.COMPANY,
										Organization.TITLE },
								Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='"
										+ Organization.CONTENT_ITEM_TYPE + "'",
								new String[] { contactId }, null);
						if (organizations.moveToFirst()) {
							do {
								String company = organizations.getString(organizations
										.getColumnIndex(Organization.COMPANY));
								String title = organizations.getString(organizations
										.getColumnIndex(Organization.TITLE));
								Log.i("company", company);
								Log.i("title", title);
							} while (organizations.moveToNext());
						}

						// 获取备注信息
						Cursor notes = getContentResolver().query(
								Data.CONTENT_URI,
								new String[] { Data._ID, Note.NOTE },
								Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='"
										+ Note.CONTENT_ITEM_TYPE + "'",
								new String[] { contactId }, null);
						if (notes.moveToFirst()) {
							do {
								String noteinfo = notes.getString(notes
										.getColumnIndex(Note.NOTE));
								Log.i("noteinfo", noteinfo);
							} while (notes.moveToNext());
						}

						// 获取nickname信息
						Cursor nicknames = getContentResolver().query(
								Data.CONTENT_URI,
								new String[] { Data._ID, Nickname.NAME },
								Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='"
										+ Nickname.CONTENT_ITEM_TYPE + "'",
								new String[] { contactId }, null);
						if (nicknames.moveToFirst()) {
							do {
								String nickname_ = nicknames.getString(nicknames
										.getColumnIndex(Nickname.NAME));
								Log.i("nickname_", nickname_);
							} while (nicknames.moveToNext());
						}

					} while (cur.moveToNext());

				}



源码下载地址 :  http://www.itbbu.com/?p=400

 

 

0
0
分享到:
评论

相关推荐

    Android通讯录管理(获取联系人、通话记录、短信消息)

    这篇教程将深入探讨如何在Android应用中获取联系人信息、通话记录以及短信消息。首先,我们来了解一下基本概念。 1. **获取联系人信息**: Android提供了一套完整的API来访问和操作联系人数据。主要涉及`...

    Android通讯录姓名手机号获取,打电话发短信功能。

    以上就是如何在Android Studio中获取通讯录姓名和手机号,以及实现打电话和发送短信的基本步骤。在实际开发中,还需要考虑权限处理的用户体验,比如提供合理的提示信息,并处理权限未被授予的情况。同时,针对不同...

    Android 获取系统联系人并发送短信demo

    在Android平台上,获取系统联系人和发送短信是两个常见的功能,常常被用于开发社交或通讯类应用程序。这个“Android 获取系统联系人并发送短信demo”应该是提供了一个示例代码,帮助开发者理解如何实现这两个功能。...

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

    在Android开发中,获取联系人、SIM卡信息以及最近联系人列表是常见的需求。下面将详细解释这些概念和实现方式。 一、Android联系人管理 Android系统提供了ContentProvider接口来访问和操作联系人数据。主要涉及到...

    安卓Android源码——获取手机通讯录的实战应用(含SIM卡中的联系人).rar

    本实战应用主要涵盖了如何通过Android源码获取手机通讯录,包括SIM卡中的联系人信息。接下来,我们将详细讨论这个主题。 首先,我们要知道在Android中访问通讯录主要涉及`ContactsContract`类,它是Android系统提供...

    2022最新 支持Android 苹果ios 通讯录管理(获取联系人、通话记录、短信消息、手机相册)

    前阵子主要是记录了如何对联系人的一些操作,比如搜索,全选、反选和删除等在实际开发中可能需要实现的功能,本篇博客是小巫从一个别人开源的一个项目抽取出来的部分内容,把它给简化出来,可以让需要的朋友清楚知道...

    Android studio—读取通讯录

    这里的`CONTENT_URI`指向了联系人的数据,`DISPLAY_NAME`和`NUMBER`是获取联系人名称和电话号码的字段。`cursor`遍历每一项联系人信息,打印出来供开发者分析。 在Android Studio中,我们通常会创建一个Adapter来...

    获取手机通讯录源码(带多个联系人选择)

    在Android开发中,获取手机通讯录并实现联系人选择功能是一项常见的需求,尤其在构建具有社交元素的应用时。本文将详细解析如何通过源码实现这一功能,包括从手机通讯录读取联系人信息、列表展示、多选机制以及返回...

    android获取单个通讯录联系人信息并分享内容(短信邀请)

    总的来说,Android获取单个通讯录联系人信息并分享内容涉及了权限管理、ContentProvider的使用、Cursor操作以及短信服务的调用等多个知识点,理解并掌握这些内容对于Android开发者来说至关重要。

    Android 获取通讯录程序源码.zip

    在Android平台上,获取通讯录是常见的功能之一,用于实现联系人管理、社交应用等功能。这份"Android 获取通讯录程序源码.zip"包含了实现这一功能的完整源代码,可以帮助开发者深入理解如何在Android系统中访问和操作...

    android中获取短信信息、通话记录和通讯录信息JUnit测试版

    在Android开发中,获取短信信息、通话记录以及通讯录数据是常见的需求,这些功能对于构建一个功能完善的手机应用至关重要。本项目实现了一个JUnit测试版本,专门针对这些功能进行单元测试,确保代码的稳定性和可靠性...

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

    联系人信息应包括姓名、手机号码、工作单位、群组、电子邮件、手机铃声等。设计时要考虑提供快速操作,如拨打电话、发送短信、查看详细信息、移出群组、移动分组和删除联系人。 2. **查询功能**:通过搜索栏输入...

    Android Studio 获取手机联系人项目main文件

    在这个项目中,我们将深入探讨如何在Android Studio中获取手机联系人,并执行发送短信、拨打电话以及对联系人进行增删改的操作。 首先,我们需要在AndroidManifest.xml文件中添加必要的权限声明,这是进行任何涉及...

    android手机通讯录的毕业论文

    在Android操作系统中,手机通讯录是一个至关重要的功能,它不仅为用户提供联系人存储、查找和管理的便捷方式,还与其他应用程序和服务紧密集成。这篇“android手机通讯录的毕业论文”可能涉及以下几个关键知识点: ...

    获取通讯录发送短信

    在移动应用开发中,"获取通讯录发送短信"是一个常见的功能需求,主要涉及到用户的联系人数据访问和系统短信服务的接口调用。本篇将详细阐述这两个关键知识点。 首先,我们要了解如何在Android系统中获取通讯录数据...

    android获取短信并匹配姓名的几种方法

    我们可以通过ContentResolver来查询这个ContentProvider,获取短信的相关信息,包括发件人电话号码和短信内容。 1. **使用ContentResolver和Uri查询短信**: 使用ContentResolver的query()方法可以查询短信数据库...

    基于android手机通讯录的设计与实现毕业论文

    2. **系统功能设计**:具体包括联系人的增删查改、拨打电话、发送短信和电子邮件等功能。 3. **系统数据库设计**:采用SQLite数据库来存储联系人信息,支持高效的数据读写。 #### 五、具体功能实现 1. **界面布局*...

    基于Android 的通讯录设计

    在这个项目中,SQLite用于持久化保存联系人的信息,包括姓名、电话号码、头像和备注。开发者需要创建数据库表结构,定义字段,以及编写SQL语句进行数据的增、删、查、改操作。此外,Android提供了SQLiteOpenHelper类...

    读取通讯录短信定位信息APP源码.zip

    开发者需要获取到相应的读取权限(`READ_CONTACTS`),然后通过ContentResolver查询`ContactsContract.Contacts`表来获取联系人信息,包括姓名、电话号码等。同时,如果需要获取更详细的信息,如邮箱地址,可以...

Global site tag (gtag.js) - Google Analytics