首页 > 其他 > 详细

管理系统联系人之补充

时间:2014-01-21 00:49:35      阅读:379      评论:0      收藏:0      [点我收藏+]

使用ContentProvider管理联系人一文中介绍了对联系人的增加、查询。在本文将补充对联系人的修改和删除操作。下面使用到的contactId均是在基本表即ContactsContract.Contacts.CONTENT_URI里面查询出来的ID,代码如下:

删除联系人信息:

	/**
	 * 删除联系人信息
	 * 
	 * @param contactId
	 * @return
	 */
	public int deleteContact(int contactId) {
		Uri uri = ContentUris.withAppendedId(
				ContactsContract.Contacts.CONTENT_URI, contactId);
		int count = getContentResolver().delete(uri, null, null);
		return count;
	}


修改联系人姓名:

	/**
	 * 修改联系人姓名
	 * 
	 * @param contactId
	 * @param name
	 * @return
	 */
	public int updateContactName(int contactId, String name) {
		ContentValues values = new ContentValues();
		values.put(StructuredName.DISPLAY_NAME, name);
		int count = getContentResolver()
				.update(ContactsContract.Data.CONTENT_URI,
						values,
						ContactsContract.Data.CONTACT_ID + "=?" + "AND "
								+ ContactsContract.Data.MIMETYPE + " = ?",
						new String[] { contactId + "",
								StructuredName.CONTENT_ITEM_TYPE });
		return count;
	}


当然增、删、改、查都可以使用ContentProviderOperation类来完成,如:

修改手机号码:

	/**
	 * 修改手机号码
	 * 
	 * @param contactId
	 * @param number
	 */
	public void updateContactNumber(int contactId, String number) {
		ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
		ops.add(ContentProviderOperation
				.newUpdate(ContactsContract.Data.CONTENT_URI)
				.withSelection(
						ContactsContract.Data.CONTACT_ID
								+ "=?"
								+ " AND "
								+ ContactsContract.Data.MIMETYPE
								+ "=?"
								+ " AND "
								+ ContactsContract.CommonDataKinds.Organization.TYPE
								+ "=?",
						new String[] {
								contactId + "",
								ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE,
								String.valueOf(ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE) })
				.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER,
						number).build());
		try {
			getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
		} catch (RemoteException e) {
			e.printStackTrace();
		} catch (OperationApplicationException e) {
			e.printStackTrace();
		}
	}


 

管理系统联系人之补充

原文:http://blog.csdn.net/u010142437/article/details/18361967

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!