一.摘要:利用内容解释器调用联系人应用的内容提供者暴露的方法,读取联系人信息.(本节只总结实现步骤,解释请看http://www.xuanyusong.com/archives/169)

二.主要逻辑:

1.获取内容解释者mResolver

ContentResolver mResolver=getApplicationContext().getContentResolver();

2.调用解释者的query方法获取cursor

Cursor cursor=mResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,projection,null,null,null);

3.遍历cursor获得联系人信息

if(cursor!=null){while(cursor.moveToNext()){......  }}

三.具体实现:

AndroidManifest需要加入权限:

    <uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission><uses-permission android:name="android.permission.WRITE_CONTACTS"></uses-permission>

MainActivity.java

public class MainActivity extends AppCompatActivity {String[] projection=new String[]{ContactsContract.CommonDataKinds.Phone.CONTACT_ID,ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,ContactsContract.CommonDataKinds.Phone.NUMBER};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);List<Contract> mContracts=new ArrayList<Contract>();mContracts=getcontract();if(mContracts!=null){for (Contract contract:mContracts) {int id=contract.getId();String name=contract.getName();String phone=contract.getPhone();System.out.println(id+name+phone);}}}private List<Contract> getcontract(){List<Contract> contracts=new ArrayList<Contract>();ContentResolver mResolver=getApplicationContext().getContentResolver();Cursor cursor=mResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,projection,null,null,null);if(cursor!=null){while(cursor.moveToNext()){String phone =cursor.getString(2);int id=cursor.getInt(0);String name=cursor.getString(1);Contract contract=new Contract();contract.setId(id);contract.setName(name);contract.setPhone(phone);contracts.add(contract);}}return contracts;}
}

Contract.java

public class Contract {int id=0;String name=null;String phone=null;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public int getId() {return id;}public void setId(int id) {this.id = id;}}

转载于:https://www.cnblogs.com/adressian/p/10198109.html

安卓基础之读取联系人的姓名和电话相关推荐

  1. Android读取联系人的姓名及电话号码

    Android中联系人的信息是通过ContentProvider来供外部应用获取的,我们使用时只需根据系统联系人ContentProvider的Uri即可获取所需数据.下面讲解如何获取联系人的姓名及电 ...

  2. android请输入姓名代码,Android获取联系人姓名和电话代码

    在开发中往往有要获取联系人列表的功能,但是这次却不是获取联系人列表,而是在联系人列表点击单个联系人,获取单个联系人的姓名和电话,并设置在指定的输入框内,方便用户的使用:以下是实现的代码: androi ...

  3. java 获取 邮箱联系人_在android中读取联系人信息的程序,包括读取联系人姓名、手机号码和邮箱...

    /** 读取联系人的信息*/ public voidtestReadAllContacts() { Cursor cursor= this.getContext().getContentResolve ...

  4. 安卓手机来电防火墙_安卓基础知识自动化测试

    安卓基础知识 本章重点探讨AndroidUI自动化测试过程中所涉及到的原理和技术.掌握这些知识是为学习Appium自动化测试框架打下基础. 学习目标 了解API和安卓版本的关系 了解安卓组件,安卓程序 ...

  5. 【安卓基础】Android直接通过路径来操作其他应用的私有目录,可以吗?

    在上篇文章[安卓基础]一文搞懂Android历代版本文件访问权限变化我们对同一个应用的的文件访问权限做了比较. 那么不同应用之间文件访问又有什么限制呢?我们准备分二到三篇文件来阐述. 这篇文章,主要来 ...

  6. Android获取手机联系人的基本信息(如姓名、电话、邮箱、备注)

    在做项目的过程中,需要获取我们手机通讯录联系人的基本信息,如姓名.电话.邮箱.备注.昵称.公司.职位.家庭电话等等信息,下面就是我总结的一些具体方法. 1:首先读取联系人需要添加读取权限,6.0以上需 ...

  7. C#基础 字符串读取/写入文本文件 代码示例

    C#基础 字符串读取/写入文本文件 代码示例 写入文本文件: 1 class Program 2 { 3 static void Main(String[] args) 4 { 5 //写入strin ...

  8. 获取 iPhone 上联系人姓名、电话、邮件的代码

    苹果 iPhone 是允许查询讯录信息的,这就为很多第三方通讯类应用提供了方便. 下面分享一段会员"cctv"的获取 iPhone 上存储的联系人姓名.电话.邮件的代码. 1 + ...

  9. 安卓.点击头像--编辑个人姓名--提交后.同时调用js关闭页面--返回上一层

    安卓.点击头像-->编辑个人姓名-->提交后.同时调用js关闭页面-->返回上一层 $(document).ready(function() { $('#selfbtn').clic ...

最新文章

  1. qt信号发送间隔短而槽耗时多_Qt信号槽问题汇总 - osc_9q1dp3jk的个人空间 - OSCHINA - 中文开源技术交流社区...
  2. 学习web前端难不难
  3. java 解析证书_java 读取证书类以及key tool gui 1.7
  4. 重大合同实为旧事 数据港信披被上交所问询
  5. 2016年IoT和新的逃逸技术将会引领威胁态势
  6. python可以从事什么工作-对话极客晨星:现在学Python 长大可以从事什么工作?...
  7. JAVA中整数类型数据溢出问题研究
  8. jquery 获取tr里的值_jquery获取tr中控件值并操作tr实现思路
  9. ftp挂载分区上去后无法识别的问题
  10. Python迷宫游戏(基础版)
  11. 机器学习入门——numpy与matplotlib的使用简介
  12. Android Export时错误提示:Conversion to Dalvik format failed with error 1
  13. 【转】正则表达式–零宽断言详解
  14. 阵列信号处理基础(一、协方差矩阵)
  15. 查看python源码位置方法以及潜在误区
  16. 玩转群晖NAS套件系列七:File Station的安装与使用保姆级教程!
  17. ASR - OpenAI whisper
  18. UG二次开发GRIP成品工具
  19. JTA transaction unexpectedly rolled back (maybe due to a timeout)
  20. 对外汉语偏误语料库_对外汉语偏误汇总

热门文章

  1. 数据结构和算法 —— 谈谈算法
  2. C/C++浮点数在内存中的存储方式
  3. 【机器视觉】 translate_measure算子
  4. 【机器视觉】 dev_error_var算子
  5. 【Linux系统编程】POSIX无名信号量
  6. 【Linux】一步一步学Linux——chkconfig命令(148)
  7. 【Linux系统编程】进程间通信--有名管道
  8. 【信息安全】ECC加密算法入门介绍
  9. DocKer linux Centos 安装DocKer 只需要十步
  10. Html点击按钮时 修改某个标签的 click点击事件