1

可以启动默认人员/联系人活动并传递结构化数据,例如分开的名字和姓氏、电话类型、城市、邮政编码和类似数据。我使用以下类似的代码:

Intent addContactIntent = new Intent(Intent.ACTION_INSERT); 
addContactIntent.setType(ContactsContract.Contacts.CONTENT_TYPE);              
addContactIntent.putExtra(ContactsContract.Intents.Insert.POSTAL, "abc 2343");      
startActivity(addContactIntent );   

这工作正常,但我无法指定哪个是例如邮政编码,以及什么是城市或地点。我在这里找到了这样的示例,但我之前无法开始添加新的联系人意图,因此用户在保存联系人之前无法编辑某些内容。代码无需用户交互即可立即保存联系人。

任何帮助都是不言而喻的。

4

1 回答 1

0

至于您的信息,您可以使用 ContactsContract.Intents.Insert.DATA ,它旨在插入多个数据项。如地址字段的城市、州等。但真正的问题是它在 API 11 之前不可用。

这是它的工作原理。

  ArrayList<ContentValues> data = new ArrayList<ContentValues>();
  //Email
  ContentValues row1 = new ContentValues();
  row1.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
  row1.put(Email.ADDRESS, "ADDRESSme");
  data.add(row1);

  //Website
  ContentValues row2 = new ContentValues();
  row2.put(Data.MIMETYPE, Website.CONTENT_ITEM_TYPE);
  row2.put(Website.URL, "URLme");
  data.add(row2);
   //Address
   ContentValues row4 = new ContentValues();
   row4.put(Data.MIMETYPE, StructuredPostal.CONTENT_ITEM_TYPE);
   row4.put(StructuredPostal.CITY, "CityMe");//Pre populating  city
   row4.put(StructuredPostal.COUNTRY, "COUNTRYme");//Pre populating  country
   row4.put(StructuredPostal.STREET, "STREETme");////Pre populating  street
   row4.put(StructuredPostal.POSTCODE, "POSTCODEme");//
   data.add(row4);

  Intent i = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI);
  i.putParcelableArrayListExtra(Insert.DATA, data);
于 2013-04-19T07:58:04.873 回答