2

Я создаю локальный календарь на устройстве Android и вставляю события в это. Вот мой код (с использованием фиктивных данных в настоящее время):Избавление от «Посещения?» в событии календаря Android, используя API календаря

public static Uri createCalendarWithName(Context ctx, String calendarName, String displayName, Account account) { 

    Uri target = Uri.parse(CalendarContract.Calendars.CONTENT_URI.toString()); 
    target = target.buildUpon().appendQueryParameter(CalendarContract.CALLER_IS_SYNCADAPTER, "true") 
    .appendQueryParameter(CalendarContract.Calendars.ACCOUNT_NAME, account.name) 
    .appendQueryParameter(CalendarContract.Calendars.ACCOUNT_TYPE, account.type).build(); 

    ContentValues values = new ContentValues(); 
    values.put(Calendars.ACCOUNT_NAME, account.name); 
    values.put(Calendars.ACCOUNT_TYPE, account.type); 
    values.put(Calendars.NAME, calendarName); 
    values.put(Calendars.CALENDAR_DISPLAY_NAME, displayName); 
    values.put(Calendars.CALENDAR_COLOR, CALENDAR_COLOR); 
    values.put(Calendars.CALENDAR_ACCESS_LEVEL, CalendarContract.Calendars.CAL_ACCESS_OWNER); 
    values.put(Calendars.OWNER_ACCOUNT, account.name); 
    values.put(Calendars.VISIBLE, 1); 
    values.put(Calendars.SYNC_EVENTS, 1); 
    values.put(Calendars.CALENDAR_TIME_ZONE, "Europe/Oslo"); 
    //values.put(Calendars.ALLOWED_ATTENDEE_TYPES, "0"); 

    Uri newCalendar = ctx.getContentResolver().insert(target, values); 

    return newCalendar; 
} 

public void addEventToCalendar(){ 

    long calID = getLocalCalID(); 
    long startMillis = 0; 
    long endMillis = 0;  
    Calendar beginTime = Calendar.getInstance(); 
    beginTime.set(2013, Calendar.MAY, 5, 14, 30); 
    startMillis = beginTime.getTimeInMillis(); 
    Calendar endTime = Calendar.getInstance(); 
    endTime.set(2013, Calendar.MAY, 5, 14, 55); 
    endMillis = endTime.getTimeInMillis(); 

    ContentResolver cr = getContentResolver(); 
    ContentValues values = new ContentValues(); 
    values.put(Events.DTSTART, startMillis); 
    values.put(Events.DTEND, endMillis); 
    values.put(Events.TITLE, "Siste frist for å ettersende papirer"); 
    values.put(Events.DESCRIPTION, "Hei!\n\n"); 
    values.put(Events.CALENDAR_ID, calID); 
    values.put(Events.EVENT_TIMEZONE, "Europe/Oslo"); 
    Uri uri = cr.insert(Events.CONTENT_URI, values); 

    // get the event ID that is the last element in the Uri 
    long eventID = Long.parseLong(uri.getLastPathSegment()); 
    Log.i("EventID", ""+eventID); 

    cr = getContentResolver(); 
    values = new ContentValues(); 
    values.put(Reminders.MINUTES, TimeUnit.MINUTES.convert(2, TimeUnit.DAYS)); 
    values.put(Reminders.EVENT_ID, eventID); 
    values.put(Reminders.METHOD, Reminders.METHOD_ALERT); 
    uri = cr.insert(Reminders.CONTENT_URI, values); 
} 

календарь и события создаются, как задумано, но открывая мероприятие открывает ряд под названием «Посещение», с тремя кнопками радио: «Да, Может быть, и нет".

Есть ли способ избавиться от этой строки/переключателей? Этот выбор будет в любом случае не имеет эффекта, что так когда-либо в событии, в местном календаре, я предполагаю ...

Я использую Android 4.0.4 устройство кстати :)

+0

У меня есть один и тот же вопрос. –

ответ

2

Добавление обе эти линии, кажется, для решения проблемы:

values.put(Events.ORGANIZER, calendarOwner); 
values.put(Events.HAS_ATTENDEE_DATA, 1); 

Не совсем уверен, почему!

Ref: https://gist.github.com/mlc/5188579

+0

Что вы подразумеваете под не совсем уверенным! ответьте только на тот вопрос, кого вы в этом уверены. – Hamad

+0

values.put (Events.HAS_ATTENDEE_DATA, 1); решила проблему! : D – Jambaman

Смежные вопросы