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設備BTW :)

+0

我有同樣的問題。 – 2013-08-05 07:31:35

回答

2

添加這兩種線條顯得解決問題:

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

不太確定爲什麼!

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

+0

你不完全確定的意思是什麼!只回答那些你確定的問題。 – Hamad 2013-12-06 04:51:12

+0

values.put(Events.HAS_ATTENDEE_DATA,1);解決了問題! :d – Jambaman 2014-05-31 13:41:46