java - 以编程方式编辑联系人姓名
问题描述
我正在修改联系人的姓名和电话号码。我修改了联系电话所以
ContentResolver cr = getContentResolver();
String where = ContactsContract.Data.CONTACT_ID + " = ? AND " +
ContactsContract.Data.MIMETYPE + " = ? AND " +
String.valueOf(ContactsContract.CommonDataKinds.Phone.TYPE) + " = ? ";
String[] params = new String[] {idContact,
ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE,
String.valueOf(ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)};
Cursor phoneCur = managedQuery(ContactsContract.Data.CONTENT_URI, null, where, params, null);
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
if ( (null == phoneCur) ) {
//createContact(name, phone);
Log.d("click","Done crate");
} else {
ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
.withSelection(where, params)
.withValue(ContactsContract.CommonDataKinds.Phone.DATA, phone)
.build());
}
phoneCur.close();
try {
cr.applyBatch(ContactsContract.AUTHORITY, ops);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (OperationApplicationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
但我不知道如何更改联系人的姓名。
如何编辑名称?
解决方案
好的 解决了!这段代码。
ContentResolver cr = getContentResolver();
String where = ContactsContract.Data.RAW_CONTACT_ID + " = ? AND " +
ContactsContract.Data.MIMETYPE + " = ? ";
String[] params = new String[] {idContact,
ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE};
Cursor phoneCur = managedQuery(ContactsContract.Data.CONTENT_URI, null, where, params, null);
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
if ( (null == phoneCur) ) {
//createContact(name, phone);
} else {
ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
.withSelection(where, params)
//.withValue(ContactsContract.CommonDataKinds.Phone.DATA, phone)
.withValue(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME, etName.getText().toString())
.build());
}
phoneCur.close();
try {
cr.applyBatch(ContactsContract.AUTHORITY, ops);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (OperationApplicationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
推荐阅读
- omnet++ - 如何放置使用 SUMO 制作的道路位置?
- python - Discord ping 与纯文本,以及如何使用我的机器人响应 ping
- python - Python 多处理文档示例不起作用
- scala - Scala 期权影响
- java - 在 LinkedList 中传递节点不会打印任何内容
- python - 在gephi图中将文本添加到目标节点
- dpl - 如何从 Datamax 编程语言 (DPL) 中的命令中计算大小和位置数据?
- discord.py - 如何将不和谐的机器人令牌存储在 .json 文件中?
- python - 将 Dataframe 写入 PostGres:单个单元格中的多行
- javascript - 如何使用分页和搜索 Ajax 数据表