存储 工具类

  • tips: 在存储入手机通讯录之前,需要获取手机通讯录运行时权限

创建想要存入信息的 ContentProviderOperation实体,并填入对应信息和必填的ID,添加到ArrayList中,再使用ContentResolverapplyBatch方法批量操作。

public static void InsertContact(Context context, ContactBean contact) {ContentValues values = new ContentValues();Uri rawContactUri = Uri.parse("content://com.android.contacts/raw_contacts");ContentResolver resolver = context.getContentResolver();// 生成 idlong rawContactId = ContentUris.parseId(resolver.insert(rawContactUri, values));// 插入数据rawContactUri = Uri.parse("content://com.android.contacts/data");ArrayList<ContentProviderOperation> ops = new ArrayList<>();// 写入名字if (null != contact.getName() && !"".equals(contact.getName())) {ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI).withValue(ContactsContract.Data.RAW_CONTACT_ID, rawContactId).withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE).withValue(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME, contact.getName()).build());}// 写入手机号if (null != contact.getMobile()) {for (MobileBean mobile : contact.getMobile()) {if (null != mobile.getContent() && !"".equals(mobile.getContent())) {ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI).withValue(ContactsContract.Data.RAW_CONTACT_ID, rawContactId).withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE).withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, mobile.getContent()).withValue(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE).build());}}}// 座机if (null != contact.getPhone()) {for (PhoneBean phone : contact.getPhone()) {if (null != phone.getContent() && !"".equals(phone.getContent())) {ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI).withValue(ContactsContract.Data.RAW_CONTACT_ID, rawContactId).withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE).withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, phone.getContent()).withValue(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_WORK).build());}}}// 邮箱if (null != contact.getEmail()) {for (EmailBean email : contact.getEmail()) {if (null != email.getContent() && !"".equals(email.getContent())) {ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI).withValue(ContactsContract.Data.RAW_CONTACT_ID, rawContactId).withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE).withValue(ContactsContract.CommonDataKinds.Email.ADDRESS, email.getContent()).withValue(ContactsContract.CommonDataKinds.Email.TYPE, ContactsContract.CommonDataKinds.Email.TYPE_WORK).build());}}}// 公司if (null != contact.getCompany()) {for (CompanyBean company : contact.getCompany()) {ContentProviderOperation.Builder builder = ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI).withValue(ContactsContract.Data.RAW_CONTACT_ID, rawContactId).withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE).withValue(ContactsContract.CommonDataKinds.Organization.TYPE, ContactsContract.CommonDataKinds.Organization.TYPE_WORK);if (null != company.getComname() && !"".equals(company.getComname())) {builder.withValue(ContactsContract.CommonDataKinds.Organization.COMPANY, company.getComname());}if (null != company.getZhiwu() && !"".equals(company.getZhiwu())) {builder.withValue(ContactsContract.CommonDataKinds.Organization.DEPARTMENT, company.getZhiwu());builder.withValue(ContactsContract.CommonDataKinds.Organization.OFFICE_LOCATION, company.getZhiwu());builder.withValue(ContactsContract.CommonDataKinds.Organization.JOB_DESCRIPTION, company.getZhiwu());builder.withValue(ContactsContract.CommonDataKinds.Organization.PHONETIC_NAME, company.getZhiwu());builder.withValue(ContactsContract.CommonDataKinds.Organization.TITLE, company.getZhiwu());}ops.add(builder.build());}}// 地址if (null != contact.getAddress() && !"".equals(contact.getAddress())) {ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI).withValue(ContactsContract.Data.RAW_CONTACT_ID, rawContactId).withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE).withValue(ContactsContract.CommonDataKinds.StructuredPostal.TYPE, ContactsContract.CommonDataKinds.StructuredPostal.TYPE_WORK).withValue(ContactsContract.CommonDataKinds.StructuredPostal.STREET, contact.getAddress()).build());}try {resolver.applyBatch(ContactsContract.AUTHORITY, ops);} catch (OperationApplicationException | RemoteException e) {e.printStackTrace();}
}

手机号验重工具类

/*** 判断某个手机号是否存在*/
private boolean isPhoneExist(Context context, String phoneNum) {Cursor cursor = null;Uri uri = Uri.parse("content://com.android.contacts/data/phones/filter/" + phoneNum);ContentResolver resolver = context.getContentResolver();cursor = resolver.query(uri, new String[]{ContactsContract.Data.DISPLAY_NAME},null, null, null);if (cursor.moveToFirst()) {cursor.close();return true;}cursor.close();return false;
}

Android 通讯录存入手机、电话、邮箱、地址等信息相关推荐

  1. Android中获取手机 IMEI Mac地址 IP地址

    一.获取手机IMEI 手机在生产时,每部手机均有一个唯一的标识(ID),国际上采用国际移动设备身份码(IMEI, International Mobile Equipment Identity).IM ...

  2. Android 正则表达式验证手机和邮箱格式是否正确

    demo例子: package it.com.cc; import java.util.regex.Matcher; import java.util.regex.Pattern; import an ...

  3. 前端学习(1391):多人管理项目11邮箱地址查询信息

    blog.js //管理页面 //展示页面 const express = require('express');const admin = express.Router();admin.get('/ ...

  4. 德州学院计算机专业地址,德州学院 计算机系 谢延红老师简介 联系方式 手机电话 邮箱...

    谢延红老师简介 谢延红 性别 女 出生年月 1975.11.21 职务 教师 职称 讲师 学历 硕士 电话 15965979907 email xieyh@dzu.edu.cn 通信地址 德州学院计算 ...

  5. 中国传媒大学计算机学院地址,中国传媒大学 计算机学院 朱立谷老师简介 联系方式 手机电话 邮箱...

    朱立谷老师简介 个人简介 朱立谷 ,男, 1965 年生,博士,副教授.中南大学工学学士,武汉科技大学工学硕士,中国矿业大学(北京)工学博士,华中科技大学博士后:曾在湘潭大学.浙江大学任教和工作, 2 ...

  6. MySQL 随机生成测试数据 姓名 电话 邮箱 地址 等

    生成名字 select concat(substring('赵钱孙李周吴郑王冯陈诸卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳酆鲍史唐费廉岑薛雷贺 ...

  7. iphone手机添加邮箱地址

    邮件是outlook 具体设置如下: 163邮箱 手机邮箱添加邮件,特别是工作邮件,经常无法加入,查了好多,终于实现了,以iPhone为例,记录一下. 邮件是outlook 具体设置如下: 1,添加账 ...

  8. 中南民族大学 计算机科学学院,中南民族大学 计算机科学学院 蒋天发老师简介 联系方式 手机电话 邮箱...

    蒋天发老师简介 蒋天发,男,汉族,1954年生,湖北荆门人.1979年毕业于华中师范学院物理系.1981年9月-1982年7月在武汉大学空间物理系无线电专业进修学习:1985年3月-1986年7月在武 ...

  9. 安徽师范大学计算机学院导师,安徽师范大学 数字计算机学院 耿焕同老师简介 联系方式 手机电话 邮箱...

    耿焕同老师简介 耿焕同,男,1973年10月出生,博士,副教授,硕士生导师. 学习经历 1992.9-1996.7 安徽师范大学 本科 2001.9-2006.7 中国科学技术大学 硕博连读 工作经历 ...

最新文章

  1. sed,sort,uniq,join,cut,paste,split
  2. springboot(二):web综合开发
  3. 制作Windows Server 2008安装启动U盘
  4. 【图像分割模型】多感受野的金字塔结构—PSPNet
  5. xcode中用pods管理第三方库转
  6. python商用_python实现sm2和sm4国密(国家商用密码)算法的示例
  7. DijKstra算法普通+堆优化链式向前星
  8. 关于spring MVC 绑定json字符串与实体类绑定
  9. python查看各列数据类型_pandas中查看数据类型的几种方式
  10. Java并发(一)wait()与notifyAll()
  11. 见证中国技术成长 数据技术嘉年华的别样十年
  12. mysql 冗余字段_18.3.3 增加冗余字段
  13. [随记] 注释//TODO的作用
  14. plotm matlab,MATLAB画地图的工具:worldmap和m_map
  15. xml解析之dom、dom4j、SAX
  16. S3DIS 点云数据集的手动修复问题
  17. 上个礼拜公司组织去浙江旅游的照片
  18. SpringMVC转SpringBoot步骤+心得
  19. Android-PullToRefresh代码分析
  20. Android:国家气象局天气预报接口JSON完全解析

热门文章

  1. 麦块服务器显示登录yyy,命令方块有哪些指令 麦块大神手札
  2. python 操作exce插入图片
  3. java entrypoint_jib自定义entrypoint
  4. Java数组初始化数值
  5. 什么是python的全局解释锁(GIL)
  6. AndroidStudio集成科大讯飞语音SDK
  7. Oracle显式游标和隐式游标
  8. 【CodeChef-TREEWALK】Walk on Tree(BM算法)(特征多项式)
  9. mac安装单系统win7
  10. ppi 各代iphone_各代苹果对比,哪一款才是最适合你的手机