Android向通讯录添加联系人的一般方法
16lz
2021-01-23
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
更多相关文章
- Android软件开发之获取通讯录联系人信息 + android联系人信息的
- Android中删除常用联系人(下)
- android打开系统联系人界面
- 简易android通讯录
- android 联系人源码分析 新字段的添加流程
- Android Emulator默认电话号码修改和MCC MNC修改
- Content Provider初谈和Android联系人信息