关于Contacts的那点事儿(续)

昨天没有写delete/update/insert,今天又试了一下。

我的需求不是整个新建联系人,是在现有联系人的基础上新增一个字段。

所以代码应该是:

values.put(Data.RAW_CONTACT_ID, Long.toString(1)); values.put(Data.MIMETYPE, CommonDataKinds.Email.CONTENT_ITEM_TYPE); values.put(CommonDataKinds.Email.TYPE,CommonDataKinds.Email.TYPE_HOME); values.put(CommonDataKinds.Email.DATA, "test2333@example.com"); getContentResolver().insert(Data.CONTENT_URI, values);

修改也可以:

values.put(Data.RAW_CONTACT_ID, Long.toString(1)); values.put(Data.MIMETYPE, CommonDataKinds.Im.CONTENT_ITEM_TYPE); values.put(CommonDataKinds.Im.PROTOCOL,CommonDataKinds.Im.PROTOCOL_JABBER); values.put(CommonDataKinds.Im.DATA, "1001"); getContentResolver().update(Data.CONTENT_URI, values,CommonDataKinds.Im.DATA+"=3214",new String[]{});

这个Data.RAW_CONTACT_ID很重要,我开始写成Data.CONTACT_ID,就错了。

在API中也看到了这个RawContacts,尝试了一下,如何从头建立一个联系人的记录,如下:

ContentValues values = new ContentValues(); //values.put(Contacts.DISPLAY_NAME, "TCL"); Uri newURI=getContentResolver().insert(RawContacts.CONTENT_URI, values); Log.d(TAG,"----uri is "+newURI); long nid = ContentUris.parseId(newURI); // long nid = values.getAsLong(RawContacts._ID); Log.d(TAG,"----nid is "+nid); // values.clear(); values.put(Data.RAW_CONTACT_ID, Long.toString(nid)); values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE); values.put(StructuredName.DISPLAY_NAME, "TCL-B"); getContentResolver().insert(Data.CONTENT_URI, values); values.clear(); values.put(Data.RAW_CONTACT_ID, Long.toString(nid)); values.put(Data.MIMETYPE, CommonDataKinds.Phone.CONTENT_ITEM_TYPE); values.put(CommonDataKinds.Phone.TYPE,CommonDataKinds.Phone.TYPE_MOBILE); values.put(CommonDataKinds.Phone.DATA, "1390005");getContentResolver().insert(Data.CONTENT_URI, values);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值