如何插入的意图接触的生日日期

问题描述 投票:0回答:2

我用这个代码,只需添加联系人:

    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”但我怎么将其添加到意图是什么?

java android android-studio
2个回答
0
投票

您可以添加生日像下面的代码:

这里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);
    }

0
投票

你无法通过修改意向联系人的生日,你必须使用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);
© www.soinside.com 2019 - 2024. All rights reserved.