您的位置:首页 > 其它

[andorid]_[初级]_[修改手机通讯录联系人信息-联系人名称、手机号码、电子邮件、即时信息、地址、组织]]

2015-04-24 18:18 429 查看
场景:只能进行联系人已存在的信息中进行数据修改,适用于从外部导入数据对联系人进行修改。要对联系人进行操作,不要忘了加权限

<uses-permission android:name="android.permission.READ_CONTACTS"/>

    <uses-permission android:name="android.permission.WRITE_CONTACTS"/>
在AndroidExample.xml文件中添加.

    //通过获取联系人ID来查找到相对应的联系人进行修改  
    //<span style="font-family: Arial, Helvetica, sans-serif;">1 联系人名称 </span>  
      
            ArrayList<ContentProviderOperation> ops =new ArrayList<ContentProviderOperation>();  
            ContentProviderOperation op = null;  
            ContentValues values = new ContentValues();  
            Uri uri =Data.CONTENT_URI;  
            Builder builder =ContentProviderOperation.newUpdate(uri)  
                    .withSelection(Data.RAW_CONTACT_ID+" =? AND "+ Data.MIMETYPE+ "=?", new String[]{contactId,StructuredName.CONTENT_ITEM_TYPE})  
                    .withYieldAllowed(true);  
              
            builder.withValue(StructuredName.DISPLAY_NAME, displayName);  
            ops.add(builder.build());  
              
            //2 手机号码  
            Builder builderTemp =ContentProviderOperation.newUpdate(uri)  
                    .withSelection(Data.RAW_CONTACT_ID+" =? AND "+ Data.MIMETYPE+ "=?", new String[]{contactId,Phone.CONTENT_ITEM_TYPE})  
                    .withYieldAllowed(true);  
              
              
            builderTemp.withValue(Phone.NUMBER, "123456789111");  
            builderTemp.withValue(Phone.TYPE, Phone.TYPE_HOME);  
            ops.add(builderTemp.build());  
              
            //3 电子邮件  
            Builder builderEmail =ContentProviderOperation.newUpdate(uri)  
                    .withSelection(Data.RAW_CONTACT_ID+" =? AND "+ Data.MIMETYPE+ "=?", new String[]{contactId,Email.CONTENT_ITEM_TYPE})  
                    .withYieldAllowed(true);  
              
              
            builderEmail.withValue(Email.DATA, "123456@163.com");  
            builderEmail.withValue(Email.TYPE, Email.TYPE_HOME);  
            ops.add(builderEmail.build());  
              
            //4 组织  
            Builder builderOrgan =ContentProviderOperation.newUpdate(uri)  
                    .withSelection(Data.RAW_CONTACT_ID+" =? AND "+ Data.MIMETYPE+ "=?", new String[]{contactId,Organization.CONTENT_ITEM_TYPE})  
                    .withYieldAllowed(true);  
              
              
            builderOrgan.withValue(Organization.COMPANY, "xxxx");  
            builderOrgan.withValue(Organization.TITLE, "工程师");  
            builderOrgan.withValue(Organization.TYPE, Organization.TYPE_CUSTOM);  
            ops.add(builderOrgan.build());  
              
            //5 地址  
            Builder builderAddress =ContentProviderOperation.newUpdate(uri)  
                    .withSelection(Data.RAW_CONTACT_ID+" =? AND "+ Data.MIMETYPE+ "=?", new String[]{contactId,StructuredPostal.CONTENT_ITEM_TYPE})  
                    .withYieldAllowed(true);  
              
            values.put(StructuredPostal.DATA, "");  
            values.put(StructuredPostal.TYPE, StructuredPostal.TYPE_HOME);  
              
            builderAddress.withValue(StructuredPostal.COUNTRY, "中国");  
            builderAddress.withValue(StructuredPostal.CITY, "深圳");  
            builderAddress.withValue(StructuredPostal.STREET, "kdsjfhdsufih");  
            builderAddress.withValue(StructuredPostal.POSTCODE, "543800");  
            builderAddress.withValue(StructuredPostal.TYPE, StructuredPostal.TYPE_HOME);  
            ops.add(builderAddress.build());  
              
            //6 即时信息  
            Builder builderIm =ContentProviderOperation.newUpdate(uri)  
                    .withSelection(Data.RAW_CONTACT_ID+" =? AND "+ Data.MIMETYPE+ "=?", new String[]{contactId,Im.CONTENT_ITEM_TYPE})  
                    .withYieldAllowed(true);  
              
              
            builderIm.withValue(Im.DATA,"573676840");  
            builderIm.withValue(Im.TYPE, Im.TYPE_CUSTOM);  
            ops.add(builderIm.build());  
              
      
              
              
            try {  
                ContentProviderResult[] results =context.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);  
            } catch (RemoteException e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            } catch (OperationApplicationException e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            }  
            ops.clear();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐