我用这个代码,只需添加联系人:
Intent intent = new Intent(ContactsContract.Intents.Insert.ACTION);
intent.setType(ContactsContract.RawContacts.CONTENT_TYPE);
intent.putExtra(ContactsContract.Intents.Insert.NAME, edNome.getText().toString() + ' ' + edCognome.getText().toString())
.putExtra(ContactsContract.Intents.Insert.PHONE, edCellulare.getText().toString())
.putExtra(ContactsContract.Intents.Insert.PHONE_TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE);
startActivity(intent);
我也需要插入的生日日期。我看到有选项“ContactsContract.CommonDataKinds.Event”但我怎么将其添加到意图是什么?
您可以添加生日像下面的代码:
这里1 calendarId
生日的价值。
private void addEvent(){
ContentResolver cr = ((Activity)Forms.Context).ContentResolver;
ContentValues values = new ContentValues();
String eventUriString = "content://com.android.calendar/events";
//Insert Events in the calendar...
values.Put(CalendarContract.Events.InterfaceConsts.CalendarId, 1);
values.Put(CalendarContract.Events.InterfaceConsts.Title, title);
values.Put(CalendarContract.Events.InterfaceConsts.Status, 1);
values.Put(CalendarContract.Events.InterfaceConsts.Description, description);
values.Put(CalendarContract.Events.InterfaceConsts.Dtstart, GetDateTimeMS(year, month, day, hour, minute));
values.Put(CalendarContract.Events.InterfaceConsts.Dtend, GetDateTimeMS(year, month, day, hour, minute));
values.Put(CalendarContract.Events.InterfaceConsts.AllDay, allday ? "1" : "0");
values.Put(CalendarContract.Events.InterfaceConsts.HasAlarm, hasalarm ? "1" : "0");
values.Put(CalendarContract.Events.InterfaceConsts.EventColor, Android.Graphics.Color.Green);
values.Put(CalendarContract.Events.InterfaceConsts.EventTimezone, "GMT+" + zone + ":00");
values.Put(CalendarContract.Events.InterfaceConsts.EventEndTimezone, "GMT+" + zone + ":00");
cr.Insert(Android.Net.Uri.Parse(eventUriString), values);
}
你无法通过修改意向联系人的生日,你必须使用ContactsContract
API来修改联系人。
据当时的文档:https://developer.android.com/training/contacts-provider/modify-data#EditContact您只能通过意图编辑在属性列表:https://developer.android.com/reference/android/provider/ContactsContract.Intents.Insert包含了像电子邮件和电话,但生日或事件数据项不在名单上。
最接近的是只要打开联系人编辑画面,并让用户添加自己的生日:
Intent editIntent = new Intent(Intent.ACTION_EDIT);
editIntent.setDataAndType(theContactUri, Contacts.CONTENT_ITEM_TYPE);
startIntent(editIntent);