private void toSaveContactInfo() {
ContentValues values = new ContentValues();
// 首先向RawContacts.CONTENT_URI执行一个空值插入,目的是获取系统返回的rawContactId
Uri rawContactUri = context.getContentResolver().insert(
RawContacts.CONTENT_URI, values);
long rawContactId = ContentUris.parseId(rawContactUri); // 往data表入姓名数据
values.clear();
values.put(Data.RAW_CONTACT_ID, rawContactId);
values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
values.put(StructuredName.GIVEN_NAME, mEmployee.getEmployeeName());
context.getContentResolver().insert(
android.provider.ContactsContract.Data.CONTENT_URI, values);
// 添加用户名 职位 部门
values.clear();
values.put(
android.provider.ContactsContract.Contacts.Data.RAW_CONTACT_ID,
rawContactId);
values.put(Data.MIMETYPE, Organization.CONTENT_ITEM_TYPE);
values.put(Organization.LABEL, mEmployee.getUserName());
values.put(Organization.TITLE, mEmployee.getJobName());
values.put(Organization.COMPANY, mEmployee.getOrgName());
values.put(Organization.TYPE, Organization.TYPE_WORK);
context.getContentResolver().insert(
android.provider.ContactsContract.Data.CONTENT_URI, values);
// 添加邮箱
values.clear();
values.put(
android.provider.ContactsContract.Contacts.Data.RAW_CONTACT_ID,
rawContactId);
values.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
values.put(Email.DATA, mEmployee.getOfficeEmail());
values.put(Email.TYPE, Email.TYPE_WORK);
context.getContentResolver().insert(
android.provider.ContactsContract.Data.CONTENT_URI, values);
// 添加手机
if (mEmployee.getMobile().contains("或")) {
final String[] tNumbers = mEmployee.getMobile().split("或");
for (String tNum : tNumbers) {
values.clear();
values.put(
android.provider.ContactsContract.Contacts.Data.RAW_CONTACT_ID,
rawContactId);
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(Phone.NUMBER, tNum);
values.put(Phone.TYPE, Phone.TYPE_WORK_MOBILE);
context.getContentResolver().insert(
android.provider.ContactsContract.Data.CONTENT_URI,
values);
}
} else {
values.clear();
values.put(
android.provider.ContactsContract.Contacts.Data.RAW_CONTACT_ID,
rawContactId);
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(Phone.NUMBER, mEmployee.getMobile());
values.put(Phone.TYPE, Phone.TYPE_WORK_MOBILE);
context.getContentResolver().insert(
android.provider.ContactsContract.Data.CONTENT_URI, values);
}
// 添加固定电话
values.clear();
values.put(
android.provider.ContactsContract.Contacts.Data.RAW_CONTACT_ID,
rawContactId);
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(Phone.NUMBER, mEmployee.getOfficeTel());
values.put(Phone.TYPE, Phone.TYPE_WORK);
context.getContentResolver().insert(
android.provider.ContactsContract.Data.CONTENT_URI, values);
// 添加传真
values.clear();
values.put(
android.provider.ContactsContract.Contacts.Data.RAW_CONTACT_ID,
rawContactId);
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(Phone.NUMBER, mEmployee.getFax());
values.put(Phone.TYPE, Phone.TYPE_FAX_WORK);
context.getContentResolver().insert(
android.provider.ContactsContract.Data.CONTENT_URI, values);
// 添加地址 邮编
values.clear();
values.put(
android.provider.ContactsContract.Contacts.Data.RAW_CONTACT_ID,
rawContactId);
values.put(Data.MIMETYPE, StructuredPostal.CONTENT_ITEM_TYPE);
values.put(StructuredPostal.FORMATTED_ADDRESS, mEmployee.getAddress());
values.put(StructuredPostal.POSTCODE, mEmployee.getPostCode());
values.put(StructuredPostal.TYPE, StructuredPostal.TYPE_WORK);
context.getContentResolver().insert(
android.provider.ContactsContract.Data.CONTENT_URI, values);
// 添加头像
values.clear();
values.put(
android.provider.ContactsContract.Contacts.Data.RAW_CONTACT_ID,
rawContactId);
values.put(Data.MIMETYPE, Photo.CONTENT_ITEM_TYPE);
// if (mEmployee.getGender().equals("2"))// 为女,保存女性默认头像
// values.put(Photo.PHOTO,
// getDrawableToByte(R.drawable.oa_contact_head_f));
// else
// 男
values.put(Photo.PHOTO, getDrawableToByte(R.drawable.oa_contact_head_m));
context.getContentResolver().insert(
android.provider.ContactsContract.Data.CONTENT_URI, values);
// waitingDialog.dismiss();
isSave = true;
// Toast.makeText(context,
// "已保存" + mEmployee.getEmployeeName() + "的联系信息至本地通讯录",
// Toast.LENGTH_SHORT).show();
}

Android 保存联系人,包括部门\职位\传真\地址\照片的更多相关文章

  1. Android 获取联系人手机号码、姓名、地址、公司、邮箱、生日

    public void testGetAllContact() throws Throwable { //获取联系人信息的Uri Uri uri = ContactsContract.Contacts ...

  2. [android] 保存联系人到系统通讯录

    对应着读联系人,把数据写进去,市场上的社交类应用经常会有这样的功能 向raw_contacts表中添加一个id 向data表里面添加对应的数据 获取ContentResolver对象,通过getCon ...

  3. android管理联系人操作

    ContentProvider扩展之管理系统联系人 我们都知道ContentProvider是用来共享数据的,然而android本身就提供了大量的ContentProvider,例如联系人信息,系统的 ...

  4. Android 查看联系人电话和姓名(ContentProvider)

    1.介绍 2.使用方法 3.在AndroidManifest.xml文件中添加相关设置 <uses-permission android:name="android.permissio ...

  5. 57.部门职位管理 ExtJs 展示

    1.jobInfo.jsp <%@ page language="java" pageEncoding="UTF-8"%> <script t ...

  6. Android系统联系人全特效实现(下),字母表快速滚动

    在上一篇文章中,我和大家一起实现了类似于Android系统联系人的分组导航和挤压动画功能,不过既然文章名叫做<Android系统联系人全特效实现>,那么没有快速滚动功能显然是称不上&quo ...

  7. android系统联系人分组特效实现(2)---字母表快速滚动

    要实现这种功能,只需要在   android系统联系人分组特效实现(1)---分组导航和挤压动画  的基础上再加上一个自定义控件即可完成. 1.新建项目,继续新建一个java类,BladeView,用 ...

  8. Android系统联系人全特效实现(上),分组导航和挤压动画

    记得在我刚接触Android的时候对系统联系人中的特效很感兴趣,它会根据手机中联系人姓氏的首字母进行分组,并在界面的最顶端始终显示一个当前的分组.如下图所示: 最让我感兴趣的是,当后一个分组和前一个分 ...

  9. Android 获取手机(ios,android)的设备唯一码(mac地址, IMEI)

    { /*获取手机(ios,android)的设备唯一码(mac地址, IMEI)2018年02月16日 ⁄ 综合 ⁄ 共 2697字 ⁄ 字号 小 中 大 ⁄ 评论关闭 app中总会用到客户端下载量数 ...

随机推荐

  1. 06day2

    蠕虫游戏 模拟 [问题描述] 蠕虫是一个古老的电脑游戏,它有许多版本.但所有版本都有一个共同规则:操纵一条蠕虫在屏幕上转圈,并试着去避免撞到自己或障碍物. 这里我们将模拟一个简单的版本.游戏将在 50 ...

  2. 正则表达式 java版

    众所周知,在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力.因此,学习及使用正则表达式,便成了解决这一矛 ...

  3. Java中SynchronizedMap与ConcurrentHashMap的对比

    如何使用 概述 ConcurrentHashMap: 线程安全: 其将整个Hash桶进行了分段segment,也就是将这个大的数组分成了几个小的片段segment,而且每个小的片段segment上面都 ...

  4. 如何脱离SDK,使用DW5.5和phonegap以及JQMobile搭建开发环境

    也许有些人是学C++出身,对于Java几乎不了解.一时心血来潮想学学android开发,于是下载了Eclipse,安装了SDK,有模有样的学习起来.也许是懒惰了,对于java一直总是提不起精神.于是确 ...

  5. C# GDI+学习笔记1

    —前言 本文是学习C# GDI+系列的第一篇文章,简单的介绍了GDI+的一些基本绘图内容,比较粗糙.但本文主要是让大家简单的回顾一下GDI+的基本概念.本篇文章的参考代码请在此下载 . GDIPTes ...

  6. DataReader方式 获取数据的操作

    一.使用DataReader读取为对象List /// <summary> /// 获得数据列表List<>,DataReader 使用参数的 /// </summary ...

  7. 数学概念 z

    数学是很难的科学,但因为它是科学家用数学来解释宇宙的语言,我们无可避免的要学习它.看看下面的这些 GIF 动图,它们提供了视觉的方式来帮助你理解各种数学技巧. 1.椭圆的画法 2.杨辉三角问题(Pas ...

  8. 把两个DataTable连接起来,相当于Sql的Inner Join方法

    在C#中把两个DataTable连接起来,相当于Sql的Inner Join方法 作者:浪漫十一狼在下面的例子中实现了3个Join方法,其目的是把两个DataTable连接起来,相当于Sql的Inne ...

  9. python3 多线程的基本用法

    #coding=utf-8 import threading #导入threading包 from time import sleep import time   def task1():     p ...

  10. LRU Cache的实现

      代码如下:     来自为知笔记(Wiz)