场景:只能进行联系人已存在的信息中进行数据修改,适用于从外部导入数据对联系人进行修改。要对联系人进行操作,不要忘了加权限
<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();
[andorid]_[初级]_[修改手机通讯录联系人信息-联系人名称、手机号码、电子邮件、即时信息、地址、组织]]
最新推荐文章于 2023-04-07 20:51:21 发布