public void inport(View view) {
Intent intentContact = new Intent(Intent.ACTION_PICK,
ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intentContact, PICK_CONTACT);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == PICK_CONTACT) {
getContactInfo(intent);
}
}
protected void getContactInfo(Intent intent) {
Cursor cursor = managedQuery(intent.getData(), null, null, null, null);
while (cursor.moveToNext()) {
String contactId = cursor.getString(cursor
.getColumnIndex(ContactsContract.Contacts._ID));
String name = cursor
.getString(cursor
.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
String hasPhone = cursor
.getString(cursor
.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if (hasPhone.equalsIgnoreCase("1"))
hasPhone = "true";
else
hasPhone = "false";
String phoneNumber = null;
if (Boolean.parseBoolean(hasPhone)) {
Cursor phones = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ " = " + contactId, null, null);
while (phones.moveToNext()) {
phoneNumber = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
}
phones.close();
}
Cursor emails = getContentResolver().query(
ContactsContract.CommonDataKinds.Email.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = "
+ contactId, null, null);
String emailAddress = null;
while (emails.moveToNext()) {
emailAddress = emails
.getString(emails
.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
}
emails.close();
Cursor address = getContentResolver()
.query(ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.StructuredPostal.CONTACT_ID
+ " = " + contactId, null, null);
while (address.moveToNext()) {
String poBox = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POBOX));
String street = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET));
String city = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY));
String state = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION));
String postalCode = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE));
String country = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY));
String type = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.TYPE));
}
Log.e("联系人", name + ":" + phoneNumber + " " + emailAddress);
}
cursor.close();
}
相关推荐
《Android通讯录系统详解——基于adt-bundle-windows的实现》 在移动设备上,通讯录是用户日常使用的重要功能之一。Android系统以其开放性和灵活性,为开发者提供了丰富的API,使得开发自定义通讯录应用成为可能。...
**一、Android调用系统通讯录** Android提供了Intent机制来启动系统内置的应用或服务。调用系统通讯录主要通过创建一个Intent,指定ACTION_PICK或ACTION_GET_CONTACTS的动作。例如: ```java Intent intent = new ...
本教程将深入探讨如何在Android应用中实现对通讯录的获取、添加、删除等操作,通过提供的"Android通讯录详细demo",你可以更好地理解这些概念。 首先,让我们了解Android系统中的通讯录API。Android提供了一个名为`...
在Android平台上,调用通讯录获取联系人是常见的功能,尤其在社交应用或者需要权限管理的应用中尤为关键。本Demo "android调用通讯录获取联系人Demo" 提供了一个实例,帮助开发者理解如何实现这一功能,允许用户自由...
在Android平台上,开发人员经常需要访问用户的通讯录数据来实现特定功能,如联系人同步、消息发送等。本文将深入探讨如何使用Android Studio来读取手机的通讯录,这是一个非常实用且基础的知识点,适用于移动应用...
总结,基于Android Studio开发的安卓通讯录系统涵盖了Android开发的多个关键知识点,包括UI设计、数据操作、系统服务的调用以及权限管理。通过实践这样的项目,开发者可以提升在Android平台上的综合开发能力。
本文将深入探讨如何使用SQLite数据库来创建一个简单的Android通讯录应用。 首先,我们要了解Android中的SQLite数据库。SQLite是一个轻量级的关系型数据库,它无需服务器进程,可以直接嵌入到应用程序中。在Android...
本文将围绕“android通讯录短信聊天”这一主题,详细讲解如何实现这样的应用。 首先,我们需要了解Android的联系人API。在Android系统中,联系人数据存储在ContentProvider中,我们可以使用ContentResolver来查询、...
在Android开发中,构建一个功能完善的通讯录应用是常见的任务之一。这个应用通常涉及到ListView的使用,SQLite数据库的管理以及相册集成。以下是对这些关键知识点的详细解释: 1. **Android 通讯录**:Android系统...
Android 自定义通讯录(仿Ios反弹效果+模糊搜索+查看手机通讯录+拉伸导航条) 效果图如下:JContact Android 自定义通讯录(仿Ios反弹效果+模糊搜索+查看手机通讯录+拉伸导航条) 效果图如下: image image image ...
在Android平台上,获取手机通讯录信息是常见的功能需求,尤其对于开发社交类或者管理类应用来说,这是一项基本操作。本`Android获取手机通讯录信息demo`提供了简单易用的方法来实现这一功能。下面我们将详细探讨相关...
在Android平台上,构建一个功能完善的手机通讯录是一个常见的任务,涉及到很多关键的编程技术和API的使用。本项目名为"Android手机通讯录实现源码",提供了实现这一功能的完整源代码,可以帮助开发者深入理解Android...
在Android开发中,SQLite是一个非常重要的组成部分,尤其在构建如通讯录这样的数据密集型应用时。SQLite是一个开源、轻量级、嵌入式的关系型数据库,它不需要单独的服务进程,可以直接在应用程序中进行操作,因此在...
在Android平台上,获取手机通讯录和SIM卡联系人,以及调用拨号界面是常见的功能需求,这通常涉及到用户信息的读取和系统的交互。以下将详细解释如何实现这些功能。 首先,要获取手机通讯录的联系人信息,我们需要...
Android通讯录系统是一个基于SQLite数据库的系统,与其他Android服务紧密集成,如Google账户同步、来电显示和短信服务。下面将详细讨论Android通讯录的相关知识点。 一、Android通讯录数据存储 1. SQLite数据库:...
本源码项目提供了一个全面的Android通讯录实现,旨在帮助开发者深入理解Android开发中与通讯录相关的技术。下面将详细阐述这个源码中的关键知识点。 1. **SQLite数据库**:Android系统使用SQLite作为本地数据库来...
【Android简易通讯录源码】是一个面向初学者和开发者的学习资源,它提供了实现基础通讯录功能的完整代码,包括添加联系人、删除联系人、编辑联系人信息以及搜索和查看联系人等操作。同时,该源码还包含了修改联系人...
总的来说,操作Android通讯录需要理解ContentProvider的工作原理,掌握ContentResolver的常用方法,以及如何与UI组件(如ListView)协同工作。通过`contactsdemo`这样的示例项目,开发者可以深入学习这些概念,并将...
### Android 获取手机通讯录所有字段知识点详解 #### 一、知识点概述 在Android开发中,有时需要读取用户的通讯录信息来实现特定的功能,比如社交应用中的好友添加、联系人同步等功能。本知识点将详细介绍如何在...