Android向通讯录添加联系人的一般方法

以一个简单的例子加以说明,记得需要相应的权限:

<uses-permission android:name="android.permission.READ_CONTACTS" />    <uses-permission android:name="android.permission.WRITE_CONTACTS" />


测试代码,关键的内容就在add函数里面。

package zhangphil.demo;import android.app.Activity;import android.content.ContentUris;import android.content.ContentValues;import android.net.Uri;import android.os.Bundle;import android.provider.ContactsContract.CommonDataKinds.Email;import android.provider.ContactsContract.CommonDataKinds.Phone;import android.provider.ContactsContract.CommonDataKinds.StructuredName;import android.provider.ContactsContract.RawContacts;import android.provider.ContactsContract.Data;import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// setContentView(R.layout.activity_main);addContact("zhangphil", "12345678901");}// 一个添加联系人信息的例子public void addContact(String name, String phoneNumber) {// 创建一个空的ContentValuesContentValues values = new ContentValues();// 向RawContacts.CONTENT_URI空值插入,// 先获取Android系统返回的rawContactId// 后面要基于此id插入值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(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, phoneNumber);// 电话类型values.put(Phone.TYPE, Phone.TYPE_MOBILE);// 向联系人电话号码URI添加电话号码getContentResolver().insert(Data.CONTENT_URI, values);values.clear();values.put(Data.RAW_CONTACT_ID, rawContactId);values.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);// 联系人的Email地址values.put(Email.DATA, "zhangphil@xxx.com");// 电子邮件的类型values.put(Email.TYPE, Email.TYPE_WORK);// 向联系人Email URI添加Email数据getContentResolver().insert(Data.CONTENT_URI, values);Toast.makeText(this, "联系人数据添加成功", Toast.LENGTH_SHORT).show();}}



附录文章:

1,《Android根据联系人姓名首字符顺序读取通讯录》链接:http://blog.csdn.net/zhangphil/article/details/47250747

2,《Android基于PinnedSectionListView实现联系人通讯录》链接:http://blog.csdn.net/zhangphil/article/details/47271741

更多相关文章

  1. Android软件开发之获取通讯录联系人信息 + android联系人信息的
  2. Android中删除常用联系人(下)
  3. android打开系统联系人界面
  4. 简易android通讯录
  5. android 联系人源码分析 新字段的添加流程
  6. Android Emulator默认电话号码修改和MCC MNC修改
  7. Content Provider初谈和Android联系人信息

随机推荐

  1. IMX6Q Android(安卓)7.1.2 IDEGen生产And
  2. android.support.v4.app.FragmentTabHost
  3. android studio Listview的使用
  4. android 8.0通知栏的适配
  5. android进度条演示
  6. Android(安卓)VideoView
  7. 安卓简易计算器
  8. Android学习(21) -- Android版本号和API Le
  9. EventBus 3 for Android
  10. GPS accuracy in Android