private ArrayList<SamContact> getAllContacts()
{
ArrayList<SamContact> arrayList = new ArrayList<SamContact>();
Cursor cur = getContentResolver().query(
ContactsContract.Contacts.CONTENT_URI,
null ,
null ,
null ,
ContactsContract.Contacts.DISPLAY_NAME
+ " COLLATE LOCALIZED ASC" );
if(cur.moveToFirst())
{
do{
SamContact samContact = new SamContact();
int idColumn = cur.getColumnIndex(ContactsContract.Contacts._ID);
int displayNameColumn = cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
// 获得联系人的ID号
String contactId = cur.getString(idColumn);
// 获得联系人姓名
String disPlayName = cur.getString(displayNameColumn);
System.out.println(disPlayName);
samContact.name = disPlayName;
// 查看该联系人有多少个电话号码。如果没有这返回值为0
int phoneCount = cur.getInt(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if(phoneCount <1)
{
continue;
}
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));
int phoneType = phones
.getInt(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
if(phoneType == ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)
{
samContact.phone = phoneNumber;
arrayList.add(samContact);
break;
}
} while (phones.moveToNext());
}
}while(cur.moveToNext());
}
return arrayList;
}
public static class SamContact
{
public String name = "";
public String phone = "";
public boolean isChoosed = false;
}
分享到:
相关推荐
一个练习的小例子,获取通讯录中所有联系人的工具类,存储在Map中,Map中key为手机号,value为联系人的姓名。还提供了一个根据手机号查询该手机号的联系人姓名的功能。 注:同一联系人可以存储多个手机号,但是同一...
首先,要获取手机通讯录的联系人信息,我们需要访问Android的Content Provider,这是一个用于在应用程序之间共享数据的接口。在Android中,`ContactsContract`类提供了对系统通讯录的访问。以下是如何获取手机通讯录...
在Android开发中,获取手机通讯录并实现联系人选择功能是一项常见的需求,尤其在构建具有社交元素的应用时。本文将详细解析如何通过源码实现这一功能,包括从手机通讯录读取联系人信息、列表展示、多选机制以及返回...
本实战应用主要涵盖了如何通过Android源码获取手机通讯录,包括SIM卡中的联系人信息。接下来,我们将详细讨论这个主题。 首先,我们要知道在Android中访问通讯录主要涉及`ContactsContract`类,它是Android系统提供...
在IT领域,获取通讯录姓名和号码通常涉及到手机或计算机应用程序的权限管理、数据存储以及API接口的使用。本文将详细解析这一主题,包括相关的技术实现、安全问题以及隐私保护。 首先,我们要明白,通讯录是用户的...
Android系统提供了一个名为Contacts Provider的API,它是一个内容提供者(Content Provider),负责管理应用程序间的数据共享,尤其是用户存储的联系人信息。要获取通讯录,我们需要在客户端应用中获取ContentResolver...
以上就是如何在Android Studio中获取通讯录姓名和手机号,以及实现打电话和发送短信的基本步骤。在实际开发中,还需要考虑权限处理的用户体验,比如提供合理的提示信息,并处理权限未被授予的情况。同时,针对不同...
在Android开发中,获取手机通讯录联系人信息并实现点击直接拨打电话的功能是常见的需求,这对于构建各种社交、工具类应用至关重要。以下将详细介绍如何实现这个功能。 首先,要访问手机通讯录,我们需要请求读取...
这篇博客"快速读取全部手机通讯录联系人"提供了一个高效的方法来实现这一功能。下面我们将深入探讨这个话题。 首先,Android提供了ContentResolver和ContactsContract类来访问系统的联系人数据。ContentResolver是...
下面是一个简单的示例,展示如何获取通讯录中的所有联系人: ```java ContentResolver resolver = getContentResolver(); Uri contactsUri = ContactsContract.Contacts.CONTENT_URI; // 查询所有联系人 Cursor ...
在安卓平台上,获取通讯录联系人的手机号码以及相关的归属地信息是常见的需求,尤其是在开发通信类应用时。本文将深入探讨这一主题,并基于提供的压缩包文件中的内容进行讲解。 首先,"JavaApk源码说明.txt"可能...
这个名为“ios-获取通讯录信息.zip”的资源包提供了一个示例项目,帮助开发者理解如何利用iOS SDK来访问并操作用户的通讯录数据。项目链接为,我们可以从以下几个关键知识点来深入探讨: 1. **授权访问通讯录**: ...
本资料包“Android手机的通讯录联系人信息.zip”提供了Android应用开发的源码示例,帮助开发者深入理解如何在Android平台上操作和管理联系人数据。 首先,Android的通讯录功能是基于Content Provider构建的,...
【ios开发】ios开发之通讯录 通过按钮调用通讯录,获得通讯录中的联系人的手机号码 【核心代码】 AddressBookDemo ├── AddressBookDemo │ ├── AddressBookDemo │ │ ├── AddressBookDemoAppDelegate.h │...
这个名为"Android代码-Android手机的通讯录联系人信息.zip"的压缩包可能包含了一个Android应用的源代码,该应用与读取、修改或管理手机上的通讯录联系人信息有关。下面将详细介绍Android平台中处理通讯录联系人信息...
首先,定义一个方法用于获取所有的联系人: ```java public List<Contact> getAllContacts(ContentResolver resolver) { List<Contact> contacts = new ArrayList(); Cursor cursor = resolver.query...
总结来说,获取手机内的通讯录联系人在Android和iOS系统中都需要遵循特定的权限管理和数据访问流程。在实现这一功能时,不仅要确保代码的正确性,还要考虑到隐私保护和用户权限的处理,这样才能为用户提供安全、合规...
在Android平台上,获取手机联系人是一项常见的功能,它允许应用访问设备上的通讯录信息,比如姓名、电话号码、电子邮件地址等。以下是一个关于如何在Android中实现这一功能的详细讲解。 首先,为了获取手机联系人,...
最后,提到的"GetPhone.apk"可能是一个实现获取通讯录功能的应用示例,而"QQͼƬ20150525113222.jpg"可能是一个与QQ相关的图片,与获取通讯录的功能关联性不大,而"GetPhone"可能是源代码文件或资源文件,进一步的...
3. **手机通讯录信息的UI适配**:在Android Studio中,我们可以使用布局文件(如XML)设计通讯录界面,一般包含一个ListView用于显示联系人列表。ListView是Android中用来展示大量数据的视图组件,每个列表项可以...