Android 获取通讯录数据
/*** 获取通讯录数据*/
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 获取通讯录数据相关推荐
- Android获取通讯录信息
Android获取通讯录信息 欢迎关注本人网站:rytter的私人博客网站 权限申请 自Android6.0以后,Android权限申请全部要求为动态申请(注:通讯录权限为危险权限),权限申请方法如下 ...
- android 获取通讯录全选反选_Xamarin.Forms读取并展示Android和iOS通讯录 TerminalMACS客户端...
本文同步更新地址: https://dotnet9.com/11520.html https://terminalmacs.com/861.html 阅读导航: 一.功能说明 二.代码实现 三.源码获 ...
- android 获取通讯录[BUG速记]
前言 最近开发中有读取手机通讯录的需求,傻的很认真的我,以为可以打开通讯录就代表不用再次动态申请权限,还是太天真,顾记录这次傻的很天真的日常,为了我的日常小鱼干,速记一下. 一.获取通讯录需要权限 1 ...
- Android 获取通讯录联系人,打开通讯录获取联系人信息;整个流程封装在基类中;
打开原生通讯录获取联系人姓名和手机号 1.获取通讯录权限: <!--访问通讯录--><uses-permission android:name="android.permi ...
- android获取mysql数据_java – Android从mySql获取数据
我必须从服务器上的MySQL数据库中获取一些数据.我有以下代码.但是当我运行它时应用程序崩溃了.即使我在Android Manifest中指定了Internet权限,我也会在Logcat中获得Perm ...
- Android获取通讯录权限6.0及以上
很多人和我一样被官网的 ActivityCompat.checkSelfPermission(context, Manifest.permission."XXX XXX XXX") ...
- android 获取通讯录全选反选_Android Recyclerview实现多选,单选,全选,反选,批量删除的功能...
效果图如下: Recyclerview 实现多选,单选,全选,反选,批量删除的步骤 1.在Recyclerview布局中添加上底部的全选和反选按钮,删除按钮,和计算数量等控件 2.这里选中的控件没有用 ...
- Android获取通讯录中的所有联系人工具类
一个获取通讯录中所有联系人的工具类,存储在Map中,Map中key为手机号,value为联系人的姓名.还提供了一个根据手机号查询该手机号的联系人姓名的功能. 注:同一联系人可以存储多个手机号,但是同一 ...
- android—获取网络数据
取网络数据主要靠发交易(或者说请求,接口等),而这些交易由java中的网络通信,HttpURLConnection和HttpClient实现,以下是具体例子. 大家都知道,网络通信,发送请求有两种方式 ...
最新文章
- 获取SpringBean对象工具类
- div宽度设置无效问题解决
- 叶杰平入选、华人占4成,2020年ACM杰出科学家榜单出炉
- 谁是谢源?广西理科探花、清华电子系学霸、阿里AI芯片带头大哥、新晋ACM Fellow...
- linux shell命令行及脚本编程实例详解_Linux高手必看的10本经典书籍
- c语言力扣l最大矩形,leetcode 84柱状图中最大的矩形,利用单调栈求解l
- apache 重写和虚拟目录配置
- 盘点一下结构体标签在Go中的应用
- Eclipse插件安装之,使用(已经下载的zip)安装包直接安装插件(例:glassfish 插件 plugin)
- 「Android」Lenovo K860 root脚本备忘
- php-fpm linux_Linux下PHP-fpm配置
- Android Q Labs| Android Q 分区存储
- ASP.NET Core 多线程 异步编程
- MongoDB下载、安装和配置教程
- Combating the Elsagate Phenomenon: Deep Learning Architectures for Disturbing Cartoons
- 纳米金;AuNPs;直 径 1~100nm
- 网际协议IP---ARP协议
- PTA:7-34 通讯录的录入与显示 (10分)
- centos离线、在线安装
- 多excel合并到一个excel的一个sheet中
热门文章
- overflow的属性值说明
- 3DMAX使用心得(2007-9-9)
- 数据库基础的SQL语句
- 职场上思路不清楚的人有多可怕
- 若尔当型状态空间方程的能控能观判断
- 域名中主机名是第几个_如何设置二级域名解析?有什么设置方法?
- 通达信f10接口是什么?
- PEP8风格是什么?
- 世界的下一个主宰是谁?答案是人工智能!为什么这么说?
- org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.cy.pj.goods.dao