add.setOnClickListener(new OnClickListener() {

  @Override
  public void onClick(View v) {
    // 获取程序界面中的三个文本框
    String name = ((EditText)findViewById(R.id.name)).getText().toString();
    String phone = ((EditText)findViewById(R.id.phone)).getText().toString();
    String email = ((EditText)findViewById(R.id.email)).getText().toString();
    //创建一个空的ContentValues
    ContentValues values = new ContentValues();
    //向RawContacts.CONTENT_URI执行一个控制插入
    //目的是获取系统返回的rawContactId
    Uri rawContactUri = getContentResolver().insert(RawContacts.CONTENT_URI, values);
    long rawContactId = ContentUris.parseId(rawContactUri);
    values.clear();
    values.put(Data.RAW_CONTACT_ID, rawContactId);
    //设置内容类型
    values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
    //设置联系人名字
    values.put(StructuredName.GIVEN_NAME,name);
    //向联系人Uri添加联系人名字
    getContentResolver().insert(
        android.provider.ContactsContract.Data.CONTENT_URI, values);
    values.clear();
    values.put(Data.RAW_CONTACT_ID, rawContactId);
    values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
    //设置联系人的电话号码
    values.put(Phone.NUMBER, phone);
    //设置电话类型
    values.put(Phone.TYPE, Phone.TYPE_MOBILE);
    //向联系人电话号码Uri添加电话号码
    getContentResolver().insert(
        android.provider.ContactsContract.Data.CONTENT_URI, values);
    values.clear();
    values.put(Data.RAW_CONTACT_ID,rawContactId);
    values.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
    //设置联系人的E_mail地址
    values.put(Email.DATA, email);
    //设置该电子邮件的类型
    values.put(Email.TYPE, Email.TYPE_WORK);
    //向联系人E_mail Uri添加E-mail数据
    getContentResolver().insert(
        android.provider.ContactsContract.Data.CONTENT_URI, values);
    Toast.makeText(MainActivity.this, "联系人数据添加成功", 8000).show();
  }
});

使用ContentProvider管理联系人------添加联系人的更多相关文章

  1. iOS-----使用AddressBook添加联系人

    使用AddressBook添加联系人 添加联系人的步骤如下: 1 创建ABAddressBookRef,这就得到了对地址簿的引用. 2 调用ABPersonCreate()函数创建一个空的ABReco ...

  2. Android 异步开发之 AsyncQueryHandler 批量添加联系人

    AsyncQueryHandler: 官方解释是一个异步帮助类(A helper class to help make handling asynchronous ContentResolver qu ...

  3. Android(java)学习笔记251:ContentProvider使用之添加数据到联系人(掌握)

    1.添加联系人逻辑思路 (1)首先在raw_contacts创建一个新的id (2)在data表里面添加这个id对应的数据 2.下面通过一个案例,说明一下如何添加一条数据到联系人: (1)首先我们关注 ...

  4. Android(java)学习笔记195:ContentProvider使用之添加数据到联系人(掌握)

    1.添加联系人逻辑思路 (1)首先在raw_contacts创建一个新的id (2)在data表里面添加这个id对应的数据 2.下面通过一个案例,说明一下如何添加一条数据到联系人: (1)首先我们关注 ...

  5. ContentProvider往通讯录添加联系人和获取联系人

    public class MainActivity extends Activity { private People people; private List<People> pList ...

  6. 为 Exchange 2010 用户添加联系人头像

    一.修改AD架构 为了给联系人添加头像,实际是让联系人头像缩略图能够显示在全局地址列表 GAL 中,需要让其在全局编录(GC)中进行复制,默认情况下,对象的“thumbnailphoto”属性值不会在 ...

  7. Android 调用系统联系人界面的添加联系人,添加已有联系人,编辑和修改。

    一.添加联系人 Intent addIntent = new Intent(Intent.ACTION_INSERT,Uri.withAppendedPath(Uri.parse("cont ...

  8. Android 利用内容提供者添加联系人的操作

    上文中<Android 获取系统的联系人>主要介绍了怎样获取系统联系人并实战了一下,本文将介绍如何添加一条联系人信息 添加联系人 1. 添加raw_contacts表,添加一条联系人的id ...

  9. Android利用ContentProviderOperation添加联系人

    Android添加联系人有两种方式: 1. 直接调用插入语句,先插入一个空Item,得到一个id,然后给这个id对应的插入其他信息,如姓名,号码,邮件等: 2. 利用ContentProviderOp ...

随机推荐

  1. struts2 if标签示例

    下面总结一下struts2 中if标签的使用 (1)判断字符串是否为空 <s:if test="user.username==null or user.username==''&quo ...

  2. C#中“==”和equals()的区别

    如以下代码: 1 2 3 4 5 6 7 8 9 int age = 25;   short newAge = 25;   Console.WriteLine(age == newAge);  //t ...

  3. php用curl调用接口方法,get和post两种方式

    首先是客户端执行方法ApiModel.php: <?php /** * 模拟post进行url请求 * @param string $url * @param array $post_data ...

  4. maven项目搭建

    一.Maven简介 Maven是基于Java平台的项目构建(mvn clean install).依赖管理(中央仓库,Nexus)和项目信息管理的项目管理工具. Maven是基于项目对象模型(POM) ...

  5. Java中HashMap案例

    package ch8; import java.util.*; /** * Created by Jiqing on 2016/11/27. */ public class MapTest { pu ...

  6. 第一天……

    Hello,大家好! 不对,这个开头有点不对.我不应该这么说,这个博客我是为我自己而开通的.目的很简单,好记兴不如烂笔头,把每天所学所感写下来. 我想作一个有条理的人,一个有计划的人,一个有效率的人. ...

  7. Hostapd

    Hostapd 一.基本概念 hostapd is an application used to setup your wireless interface as an access-point (m ...

  8. jquery实现全选、反选、不选

    <!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8&quo ...

  9. Objective-C与C++的区别

    1.两者的最大相同:都是从C演化而来的面相对象语言,两者都兼容标准C语言 2.两者的最大不同:Objective-C提供了运行期动态绑定机制,而C++是编译静态绑定,并且通过嵌入类(多重继承)和虚函数 ...

  10. 20160808_卸载OpenJDK

    1.查看信息 [root@localhost ~]# rpm -qa | grep jdkjava-1.6.0-openjdk-devel-1.6.0.0-1.50.1.11.5.el6_3.x86_ ...