android更新联系人姓名、号码

    private void updatePhoneInfo(String phoneName, String phoneNumber) {
        //获取需要修改的联系人信息,该 Uri 信息是从其他 Activity 中传过来的,因此这里只是简单的获得
        final Intent intent = getIntent();
        Uri data = intent.getData();
        final long contactId = ContentUris.parseId(data);
        
        //查找联系人语句 SQL 中的 where selection 语句,通过 RAW_CONTACT_ID 选取需要修改的记录
        final String nameSelection = StructuredName.RAW_CONTACT_ID + " = ? AND "
                + Data.MIMETYPE + " = ?";
        final String[] nameSelectionArgs = new String[] { String.valueOf(contactId),
                StructuredName.CONTENT_ITEM_TYPE };
        final String numberSelection = Phone.RAW_CONTACT_ID + " = ? AND "
                + Data.MIMETYPE + " = ?";
        final String[] numberSelectionArgs = new String[] {
                String.valueOf(contactId), Phone.CONTENT_ITEM_TYPE };

        //存储操作语句的容器
        ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
        
        //ContentProviderOperation 提供了 SQL 的增(add)、删(delete)、改(update)的基本操作,只要设置好条件和修改语句就可以了
        // update contact's name
        ContentProviderOperation.Builder builder =  ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI);        
        builder.withSelection(nameSelection, nameSelectionArgs);
        builder.withValue(StructuredName.FAMILY_NAME, null);
        builder.withValue(StructuredName.DISPLAY_NAME, phoneName);        
        ops.add(builder.build());
        
        // update contact's phone number
        builder =  ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI);
        builder.withSelection(numberSelection, numberSelectionArgs);
        builder.withValue(Phone.NUMBER, phoneNumber);
        ops.add(builder.build());
        
        try {
            //一次性应用上述修改操作
            getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
        } catch (RemoteException e) {
            e.printStackTrace();
        } catch (OperationApplicationException e) {
            e.printStackTrace();
        }

    }

Contacts的增删查改的操作方法可以参考android的文档:http://developer.android.com/reference/android/provider/ContactsContract.Data.html

转载于:https://www.cnblogs.com/dotc/archive/2012/09/13/2683453.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值