的Android写的联系人
问题描述:
我如何添加一个名字联系人? 我有两个spinners,一个用于firstname,一个用于lastname。分配的变量是linkname1和linkname2。当用户按下确定按钮(这些都在对话框中)时,名称(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());
但新名称未在联系人列表中出现。
答
该内容提供者虽然仍然可以工作,但被替换为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);
帐户名和类型,将有来自AccountManager服务来查询。通过选择一个帐户(例如Local或Google)或提示用户。
答
Android的操作方法(创建新的联系人):
http://www.lacherstorfer.at/haris_blog/2008/03/android-howto-create-a-new-con.html
一定要看看注释的代码编辑,可能会因版本帮助修复。
我已经试过这个。还有评论中的那个。 “人无法解决或不是场” – erdomester 2011-03-04 20:33:38