Android ContentProvider往通讯录添加联系人

http://www.cnblogs.com/linjiqin/archive/2011/05/30/2063669.html


	
    /**
     * 首先向RawContacts.CONTENT_URI执行一个空值插入,目的是获取系统返回的rawContactId 
     * 
     * 这是后面插入data表的数据,只有执行空值插入,才能使插入的联系人在通讯录里可见
     */
    public static void testInsert(Context context){
        ContentValues values = new ContentValues();
        //首先向RawContacts.CONTENT_URI执行一个空值插入,目的是获取系统返回的rawContactId
        Uri rawContactUri = context.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, "小狗");
        context.getContentResolver().insert(
                android.provider.ContactsContract.Data.CONTENT_URI, values);
        
        //往data表入电话数据
        values.clear();
        values.put(android.provider.ContactsContract.Contacts.Data.RAW_CONTACT_ID, rawContactId);
        values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
        values.put(Phone.NUMBER, "5554");
        values.put(Phone.TYPE, Phone.TYPE_MOBILE);
        context.getContentResolver().insert(
                android.provider.ContactsContract.Data.CONTENT_URI, values);

        //往data表入电话数据
        values.clear();
        values.put(android.provider.ContactsContract.Contacts.Data.RAW_CONTACT_ID, rawContactId);
        values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
        values.put(Phone.NUMBER, "55555555555");
        values.put(Phone.TYPE, Phone.TYPE_MOBILE);
        context.getContentResolver().insert(
                android.provider.ContactsContract.Data.CONTENT_URI, values);
        
        
        //往data表入Email数据
        values.clear();
        values.put(android.provider.ContactsContract.Contacts.Data.RAW_CONTACT_ID, rawContactId);
        values.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
        values.put(Email.DATA, "ljq218@126.com");
        values.put(Email.TYPE, Email.TYPE_WORK);
        context.getContentResolver().insert(
                android.provider.ContactsContract.Data.CONTENT_URI, values);
    }



补充:

通讯录中联系人的信息有很多项,就联系人名字一项就有很多,并不是仅仅

   values.put(StructuredName.GIVEN_NAME, "小狗");
其实丰富一点应该是:

		values.put(StructuredName.GIVEN_NAME, "小狗");
		values.put(StructuredName.PREFIX, "小狗的前缀");
		values.put(StructuredName.MIDDLE_NAME, "小狗的中间名");
		values.put(StructuredName.SUFFIX, "小狗的后缀");
		values.put(StructuredName.FAMILY_NAME, "小狗的姓氏");
其他信息项也是如此。。。。需要逐个翻找出来
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值