一般来说,实现的都是添加一个联系人和对应的号码,但如果想为一个联系人添加多个号码怎么办,我找了半天都没有解决方法,最后自己看别人的通讯录得到启发,直接上代码。大家互相帮助才能进步。
//往数据库中新增联系人
public void AddContact(String name, String numberFirst,String numberSecond)
{
//创建一个空的ContentValues
ContentValues values = new ContentValues();
//首先向RawContacts.CONTENT_URI执行一个空值插入,目的是获取系统返回的rawContactId
Uri rawContactUri = 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, name);//设置联系人名字
getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);//向联系人URI添加联系人名字
//往data表插入电话数据
values.clear();
values.put(Data.RAW_CONTACT_ID, rawContactId);
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(Phone.NUMBER, numberFirst);
values.put(Phone.TYPE, Phone.TYPE_MOBILE);//插入手机号码
getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);
//往data表插入其他电话数据
values.clear();
values.put(Data.RAW_CONTACT_ID, rawContactId);
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(Phone.NUMBER, numberSecond);
values.put(Phone.TYPE, Phone.TYPE_OTHER);//插入除了其他号码
getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);
}