加入读取联系人信息的权限
<uses-permission android:name="android.permission.READ_CONTACTS"/>
content://com.android.contacts/contacts 操作的数据是联系人信息Uri
content://com.android.contacts/data/phones 联系人电话Uri
content://com.android.contacts/data/emails 联系人Email
Uri
读取联系人信息
Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, 
    null,
null, null, null); 
  while
(cursor.moveToNext()) { 
   String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); 
   String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
  
   Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
        null, 
        ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+" = "+ contactId, 
        null,
null); 
    while
(phones.moveToNext()) { 
     String phoneNumber = phones.getString(phones.getColumnIndex( 
         ContactsContract.CommonDataKinds.Phone.NUMBER)); 
     Log.i("RongActivity",
"phoneNumber="+phoneNumber);
    } 
    phones.close(); 
  
    Cursor emails = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, 
       null, 
       ContactsContract.CommonDataKinds.Email.CONTACT_ID
+ " = " + contactId, 
       null,
null); 
       while
(emails.moveToNext()) { 
        // This would allow you get several email addresses 
        String emailAddress = emails.getString(emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
        Log.i("RongActivity",
"emailAddress="+ emailAddress);
       } 
       emails.close(); 
  } 
  cursor.close();
---------------------------------

/**

* 读取联系人信息

@author Administrator yangchao

*

*/

public class MainActivity extends Activity

{

public static final String TAG = "yangchao";

private ListView lvContent;

@Override

protected void onCreate(Bundle
savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

lvContent =
(ListView) findViewById(R.id.lvContent);

List<HashMap<String, Object>> data = new ContactService(this).getInfo();

SimpleAdapter adapter = new SimpleAdapter(this,
data, R.layout.item,

new String[]{"name", "number", "email"}, new int[]{R.id.tvName,
R.id.tvNumber,
R.id.tvEmail});

lvContent.setAdapter(adapter);

}

}

---------------------------------------------------------------------------------------------------------------

public class ContactService

{

private Context context;

public ContactService(Context
context)

{

this.context =
context;

}

public List<HashMap<String,
Object>> getInfo()

{

List<HashMap<String, Object>> data = new ArrayList<HashMap<String,
Object>>();

ContentResolver contentResolver = context.getContentResolver();

Cursor cursor = contentResolver.query(

ContactsContract.Contacts.CONTENT_URInullnullnullnull);

while (cursor.moveToNext())

{

String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));

String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));

HashMap<String, Object> map = new HashMap<String,
Object>();

map.put("name",
name);

Cursor phones = contentResolver.query(

ContactsContract.CommonDataKinds.Phone.CONTENT_URInull,

ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "
= "

+ contactId, nullnull);

while (phones.moveToNext())

{

String phoneNumber = phones

.getString(phones

.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

map.put("number",
phoneNumber);

Log.i("RongActivity", "phoneNumber=" +
phoneNumber);

}

phones.close();

Cursor emails = contentResolver.query(

ContactsContract.CommonDataKinds.Email.CONTENT_URInull,

ContactsContract.CommonDataKinds.Email.CONTACT_ID + "
= "

+ contactId, nullnull);

while (emails.moveToNext())

{

//
This would allow you get several email addresses

String emailAddress = emails

.getString(emails

.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));

map.put("email",
emailAddress);

Log.i("RongActivity", "emailAddress=" +
emailAddress);

}

data.add(map);

emails.close();

}

cursor.close();

return data;

}

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android项目——读取手机联系人信息的更多相关文章

  1. Android 读取手机联系人、拨号、发送短信及长按菜单的操作

    本示例实现了读取手机联系人,拨号.发送短信及长按出现菜单选项的操作↓ 1.Andrid项目结构图↓主要操作图中红色方框内的文件. 2.首先布局代码如下↓ a, main.xml 程序运行的主界面,主要 ...

  2. android利用ContentResolver访问者获取手机联系人信息

    转载自:http://www.jb51.net/article/106379.htm 首先需要在AndroidManifest.xml文件中添加权限: <uses-permission andr ...

  3. Expo大作战(三十九)--expo sdk api之 DocumentPicker,Contacts(获取手机联系人信息),Branch

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  4. Android项目实战--手机卫士开发系列教程

    <ignore_js_op> banner131010.jpg (71.4 KB, 下载次数: 0) 下载附件  保存到相册 2 分钟前 上传   Android项目实战--手机卫士01- ...

  5. 手势识别=读取手机联系人=ContentResolver-Day3

    手势识别=读取手机联系人=ContentResolverDay32 mobile3.0 手机设置向导页面完成 选择器没有做完成 样式提取完成 自定义控件的优化继续 抽取父类Activity 完成 手机 ...

  6. 读取手机联系人,并用listview显示

    读取手机联系人,用到的就是一个contentprovider. 数据库里面有三张重要的表 raw_contact 里面有所有联系人的数据 data 每个联系人的所有数据 mime-type 每条数据的 ...

  7. Android 获取手机联系人信息

    //获取联系人 Uri rawContacts = Uri.parse("content://com.android.contacts/raw_contacts"); Conten ...

  8. Android使用READ_CONTACTS读取手机联系人

    实例代码: package com.example.readcontacts; import java.io.InputStream; import java.util.ArrayList; impo ...

  9. Android中读取短信信息

    Android中读取的短信文件有 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 /**  * 所有的短信  */ public static final Strin ...

随机推荐

  1. JSP 中EL表达式用法详解

    EL 全名为Expression Language EL 语法很简单,它最大的特点就是使用上很方便.接下来介绍EL主要的语法结构: ${sessionScope.user.sex} 所有EL都是以${ ...

  2. iOS开发 ReactiveCocoa入门教程 第一部分

    作为一个iOS开发者,你写的每一行代码几乎都是在响应某个事件,例如按钮的点击,收到网络消息,属性的变化(通过KVO)或者用户位置的变化(通过CoreLocation).但是这些事件都用不同的方式来处理 ...

  3. 在centos6.5中安装github的客户端git

    简介 git是一个分布式版本控制软件,我采用的采用的安装方式是源码安装 1.安装编译git时需要的包 # yum install curl-devel expat-devel gettext-deve ...

  4. mallo函数

    malloc的全称是memory allocation,中文叫动态内存分配,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存.原型为extern void *malloc ...

  5. 页面路由跳转地址-get方式

    从开始敲代码,一直到现在,总是记不太清页面上的路由应该怎样书写,因此最终还是觉得自己应该提笔写下来以免自己再犯同样的错误! 1.get方式访问页面 http://localhost:3001/arti ...

  6. 解决 LINUX mysql不能通过IP连接 只能localhost 权限没问题情况下

    最近朋友的一个服务器出现了一个奇怪的问题,弄了两个星期没有解决,在哥坚持不懈的努力下,终于解决了问题.发出来给需要的朋友. 问题:php程序连接mysql只能使用localhost,不能使用127.0 ...

  7. SQL Server中开发常用的数据类型

    我们在日常开发过程中,在进行数据库设计的时候,经常会遇到如果选择数据类型的问题,选择什么样的数据类型最合适,然后当我们在项目中建立对应实体的时候,如何选择对应的CLR类型.针对这些问题,于是这篇文章诞 ...

  8. iOS开发UI篇—UITableviewcell的性能优化和缓存机制

    iOS开发UI篇—UITableviewcell的性能问题 一.UITableviewcell的一些介绍 UITableView的每一行都是一个UITableViewCell,通过dataSource ...

  9. 变量声明提升 Vs. 函数声明提升

    1. 变量声明提升 先看以下代码: 1)var in_window = "a" in window; console.log(in_window); 2)var in_window ...

  10. Java mysql 日期相关

    获取当前系统时间和日期并格式化输出: import java.util.Date;import java.text.SimpleDateFormat; public class NowString { ...