2

学生向けアプリの場合、カレンダーのインポート機能を実装しました。ICS ファイルは、いくつかのイベントがある学校のウェブサイトからダウンロードされます。すべてのイベントは単一のイベントであり、ics ファイル内の定期的なイベントではありません。インポートは問題なく動作します。しかし、インポートしたすべてのイベントを削除したい場合、レコードを同期できないというメッセージが表示されることがあります。私が今考えていたことは次のとおりです。

  • すべてのイベントの ICS ファイルを解析する
  • イベントを定期的なイベントとしてマージしてみてください
  • 定期的なイベントをカレンダーにインポートする

しかし、私が何をしてもうまくいきません。どちらのイベントも繰り返しとしてマークされていますが、意図したように毎週ではなく毎月としてマークされています。または、単一のイベントとしてインポートされ続けます。

これが私が試した最後のコードです。

    ContentValues event = new ContentValues();

    event.put("calendar_id", calId);
    event.put("title", title);
    event.put("description", "[HSLU_TAAPP_IMPORTED]");
    event.put("eventLocation", location);
    event.put("eventTimezone", "GMT+1");

    long startTime = startDateTime.getTimeInMillis();
    startDateTime.add(Calendar.HOUR, 1);
    long endTime = startDateTime.getTimeInMillis();
    event.put("dtstart", startTime);
    event.put("rrule", "FREQ=WEEKLY");
    event.put("dtend", endTime);         

    Uri eventsUri = Uri.parse(getCalendarUriBase()+"events");
    Uri insertedUri = _activity.getContentResolver().insert(eventsUri, event);
    return insertedUri;

誰かがそれを正しく行う方法の例を教えてもらえますか? または、「同期できません」というメッセージを取り除くことを目的とした別のアプローチはありますか?

4

0 に答える 0