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 SlidingMenu 侧边菜单划出后剩余部分阴影设置
  2. 从零开始学Xamarin.Forms(四) Android(安卓)准备步骤(添加第三方X
  3. Android(安卓)Studio环境变量设置
  4. Android(安卓)使用 lambda 表达式
  5. Android之添加快捷方式(Shortcut)到手机桌面
  6. Android(安卓)SDK无法更新问题解决
  7. Android中的strings文件中字符串的拼接
  8. Android中删除常用联系人(下)
  9. Android软件开发之获取通讯录联系人信息 + android联系人信息的

随机推荐

  1. [Android--Tool]不在Android设备运行而打
  2. Android Studio NDK开发在C代码中将Log输
  3. Android的两种数据存储方式分析(二)
  4. Android轻量型数据库SQLite详解
  5. android的logcat详细用法
  6. Android进程与内存及内存泄露
  7. AsyncTask 很好
  8. android:layout_weight让layout自动调整
  9. Android消息处理机制:源码剖析Handler、Lo
  10. Android华为推送低版本兼容问题