/*** 获取通讯录数据*/
public class ContactUtils {@SuppressLint("Range")public static ArrayList<MyContacts> getAllContacts(Context context) {ArrayList<MyContacts> contacts = new ArrayList<MyContacts>();Cursor cursor = context.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);while (cursor.moveToNext()) {//新建一个联系人实例MyContacts temp = new MyContacts();String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));//获取联系人姓名String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));String string = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.PHOTO_URI));temp.name = name;//获取联系人电话号码Cursor phoneCursor = context.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId, null, null);while (phoneCursor.moveToNext()) {String phone = phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));phone = phone.replace("-", "");phone = phone.replace(" ", "");temp.phone = phone;}temp.photo = string;//获取联系人备注信息Cursor noteCursor = context.getContentResolver().query(ContactsContract.Data.CONTENT_URI,new String[]{ContactsContract.Data._ID, ContactsContract.CommonDataKinds.Nickname.NAME},ContactsContract.Data.CONTACT_ID + "=?" + " AND " + ContactsContract.Data.MIMETYPE + "='"+ ContactsContract.CommonDataKinds.Nickname.CONTENT_ITEM_TYPE + "'",new String[]{contactId}, null);if (noteCursor.moveToFirst()) {do {@SuppressLint("Range") String note = noteCursor.getString(noteCursor.getColumnIndex(ContactsContract.CommonDataKinds.Nickname.NAME));temp.note = note;Log.i("note:", note);} while (noteCursor.moveToNext());}contacts.add(temp);//记得要把cursor给close掉phoneCursor.close();noteCursor.close();}cursor.close();return contacts;}}
/*** 通讯录实体类*/
public class MyContacts {public String name;public String phone;public String note;public String photo;@Overridepublic String toString() {return "MyContacts{" +"name='" + name + '\'' +", phone='" + phone + '\'' +", note='" + note + '\'' +", photo=" + photo +'}';}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 String getNote() {return note;}public void setNote(String note) {this.note = note;}public String getPhoto() {return photo;}public void setPhoto(String photo) {this.photo = photo;}}

Android 获取通讯录数据相关推荐

  1. Android获取通讯录信息

    Android获取通讯录信息 欢迎关注本人网站:rytter的私人博客网站 权限申请 自Android6.0以后,Android权限申请全部要求为动态申请(注:通讯录权限为危险权限),权限申请方法如下 ...

  2. android 获取通讯录全选反选_Xamarin.Forms读取并展示Android和iOS通讯录 TerminalMACS客户端...

    本文同步更新地址: https://dotnet9.com/11520.html https://terminalmacs.com/861.html 阅读导航: 一.功能说明 二.代码实现 三.源码获 ...

  3. android 获取通讯录[BUG速记]

    前言 最近开发中有读取手机通讯录的需求,傻的很认真的我,以为可以打开通讯录就代表不用再次动态申请权限,还是太天真,顾记录这次傻的很天真的日常,为了我的日常小鱼干,速记一下. 一.获取通讯录需要权限 1 ...

  4. Android 获取通讯录联系人,打开通讯录获取联系人信息;整个流程封装在基类中;

    打开原生通讯录获取联系人姓名和手机号 1.获取通讯录权限: <!--访问通讯录--><uses-permission android:name="android.permi ...

  5. android获取mysql数据_java – Android从mySql获取数据

    我必须从服务器上的MySQL数据库中获取一些数据.我有以下代码.但是当我运行它时应用程序崩溃了.即使我在Android Manifest中指定了Internet权限,我也会在Logcat中获得Perm ...

  6. Android获取通讯录权限6.0及以上

    很多人和我一样被官网的 ActivityCompat.checkSelfPermission(context, Manifest.permission."XXX XXX XXX") ...

  7. android 获取通讯录全选反选_Android Recyclerview实现多选,单选,全选,反选,批量删除的功能...

    效果图如下: Recyclerview 实现多选,单选,全选,反选,批量删除的步骤 1.在Recyclerview布局中添加上底部的全选和反选按钮,删除按钮,和计算数量等控件 2.这里选中的控件没有用 ...

  8. Android获取通讯录中的所有联系人工具类

    一个获取通讯录中所有联系人的工具类,存储在Map中,Map中key为手机号,value为联系人的姓名.还提供了一个根据手机号查询该手机号的联系人姓名的功能. 注:同一联系人可以存储多个手机号,但是同一 ...

  9. android—获取网络数据

    取网络数据主要靠发交易(或者说请求,接口等),而这些交易由java中的网络通信,HttpURLConnection和HttpClient实现,以下是具体例子. 大家都知道,网络通信,发送请求有两种方式 ...

最新文章

  1. 获取SpringBean对象工具类
  2. div宽度设置无效问题解决
  3. 叶杰平入选、华人占4成,2020年ACM杰出科学家榜单出炉
  4. 谁是谢源?广西理科探花、清华电子系学霸、阿里AI芯片带头大哥、新晋ACM Fellow...
  5. linux shell命令行及脚本编程实例详解_Linux高手必看的10本经典书籍
  6. c语言力扣l最大矩形,leetcode 84柱状图中最大的矩形,利用单调栈求解l
  7. apache 重写和虚拟目录配置
  8. 盘点一下结构体标签在Go中的应用
  9. Eclipse插件安装之,使用(已经下载的zip)安装包直接安装插件(例:glassfish 插件 plugin)
  10. 「Android」Lenovo K860 root脚本备忘
  11. php-fpm linux_Linux下PHP-fpm配置
  12. Android Q Labs| Android Q 分区存储
  13. ASP.NET Core 多线程 异步编程
  14. MongoDB下载、安装和配置教程
  15. Combating the Elsagate Phenomenon: Deep Learning Architectures for Disturbing Cartoons
  16. 纳米金;AuNPs;直 径 1~100nm
  17. 网际协议IP---ARP协议
  18. PTA:7-34 通讯录的录入与显示 (10分)
  19. centos离线、在线安装
  20. 多excel合并到一个excel的一个sheet中

热门文章

  1. overflow的属性值说明
  2. 3DMAX使用心得(2007-9-9)
  3. 数据库基础的SQL语句
  4. 职场上思路不清楚的人有多可怕
  5. 若尔当型状态空间方程的能控能观判断
  6. 域名中主机名是第几个_如何设置二级域名解析?有什么设置方法?
  7. 通达信f10接口是什么?
  8. PEP8风格是什么?
  9. 世界的下一个主宰是谁?答案是人工智能!为什么这么说?
  10. org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.cy.pj.goods.dao