Android写联系人
可能重复:Android写联系人,android,android-contacts,Android,Android Contacts,可能重复: 如何向联系人添加姓名? 我有两个微调器,一个用于firstname,另一个用于lastname。分配的变量是linkname1和linkname2。当用户按下OK按钮(这些按钮都在一个对话框中)时,姓名(linkname1+“”+linkname2)应添加到联系人中。我可以读联系人,但如何写 谢谢 更新: 我也试过: newname = linkname1 + " " + linkname2; ContentValues values = new ContentValues();
如何向联系人添加姓名? 我有两个微调器,一个用于firstname,另一个用于lastname。分配的变量是linkname1和linkname2。当用户按下OK按钮(这些按钮都在一个对话框中)时,姓名(linkname1+“”+linkname2)应添加到联系人中。我可以读联系人,但如何写 谢谢 更新: 我也试过:
newname = linkname1 + " " + linkname2;
ContentValues values = new ContentValues();
vales.put(ContactsContract.Contacts.DISPLAY_NAME, newname);
这是:
StringBuffer strBuf = new StringBuffer();
strBuf.append(linkname1);
strBuf.append(" ");
strBuf.append(linkname2);
ContentValues values = new ContentValues();
values.put(ContactsContract.Contacts.DISPLAY_NAME, strBuf.toString());
但新姓名未出现在联系人列表中。Android操作系统(创建新联系人):
请务必查看注释中的代码编辑,这可能有助于修复,具体取决于版本。在2.2中,内容提供商虽然仍然可以工作,但已被联系人合同取代。以下代码将用于新联系人合同提供商:
ArrayList<ContentProviderOperation> ops =
new ArrayList<ContentProviderOperation>();
...
int rawContactInsertIndex = ops.size();
ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
.withValue(RawContacts.ACCOUNT_TYPE, accountType)
.withValue(RawContacts.ACCOUNT_NAME, accountName)
.build());
ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, rawContactInsertIndex)
.withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
.withValue(StructuredName.GIVEN_NAME, linkname1)
.withValue(StructuredName.FAMILY_NAME, linkname2)
.build());
getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
arraylistops=
新的ArrayList();
...
int rawContactInsertIndex=ops.size();
添加(ContentProviderOperation.newInsert(RawContacts.CONTENT\uURI)
.withValue(RawContacts.ACCOUNT\u类型,accountType)
.withValue(RawContacts.ACCOUNT\u名称、accountName)
.build());
add(ContentProviderOperation.newInsert(Data.CONTENT\u URI)
.带ValueBackReference(Data.RAW\u CONTACT\u ID,RAW contactInsertIndex)
.withValue(Data.MIMETYPE、StructuredName.CONTENT\u ITEM\u TYPE)
.withValue(StructuredName.GIVEN_NAME,linkname1)
.withValue(StructuredName.FAMILY\u NAME,linkname2)
.build());
getContentResolver().applyBatch(contacts contract.AUTHORITY,ops);
必须从服务中查询的帐户名和类型。通过选择帐户(如本地或谷歌)或提示用户。我已经尝试过了。评论中的那个也一样。“人员无法解析或不是字段”