簡體   English   中英

在Android日歷中插入重復活動

[英]Insert recurring events in Android calendar

我有一個我無法解決的問題。 我設法將事件插入我的android日歷中,但我想使它們重復發生。 以生日為例。 我希望他們每年重復一次。 我有這個代碼:

    final ContentResolver cr = ctx.getContentResolver();
    ContentValues cv = new ContentValues();
    cv.put("calendar_id", calIds[0]);
    cv.put("title", title);

    cv.put("rrule", "FREQ=YEARLY");
    cv.put("description", comment );
    Calendar start = Calendar.getInstance();
    start.set(2012, 0, 2, 8, 0, 0);

    Calendar end = Calendar.getInstance();
    end.set(2012, 0, 2, 9, 0, 0);

    long startTime = start.getTimeInMillis();       
    long endTime = end.getTimeInMillis();

    cv.put("dtstart", startTime);
    cv.put("dtend", endTime);
    //Insertion on the events of the calendar
    cr.insert(Uri.parse("content://com.android.calendar/events"), cv);

它插入我的事件,但不會重復發生。 我的意思是我的活動出現在2012年1月2日,但是沒有出現在2013年1月2日,也沒有出現在2014年,依此類推。 因此,我在手機上打開了日歷,嘗試編輯我的活動,發現應該在哪里選擇活動的發生位置,在那里顯示“ 2012年1月2日”,而不是“ 1月2日”,因為如果要進行自定義我的手機事件。 另一方面,如果我嘗試通過手機手動添加事件,則效果很好(我是說我可以添加每年發生的事件)。 我注意到的另一件事是,例如,如果更改年份,則我將2010年而不是2012年插入,它將每年插入事件直到當前日期。 更准確地說,它將在2010年1月2日插入一個事件,在2011年1月2日插入另一個事件,並在2012年1月2日停止它(今天是2012年1月2日),並且在此日期之后不再插入事件。 有沒有人遇到過這類問題? 歡迎任何幫助。 謝謝!

如果是重復發生的事件,請在ContentValues中放置“ duration”而不是“ dtend”。

請參閱https://stackoverflow.com/a/13839548/3629966

從聽起來上看,您嘗試添加的任何事件都不會在當前日期之后發生。

使用日歷,手動插入一個每年/每月/每周的事件,該事件具有特定的標題(例如“ Test”),該事件會重復到當前日期之后。 然后編寫一個簡單的方法來讀取日歷中當前的事件。 檢查標題“ Test”並記錄該事件的ContentValues的內容-查看是否可以發現任何差異。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM