0

このコードがイベントをカレンダーに挿入しない理由を誰かが理解していますか?エラーはありません。イベントが挿入されないだけですか?

ICSアップデートでGalaxys2を使用していますが、これが適切かどうかはわかりませんが、Googleカレンダーアプリではないことと関係があるのではないかと考えています。

public void addEvent(Context ctx, String title, Calendar start, Calendar end) {
   Log.d(TAG, "AddUsingContentProvider.addEvent()");

TextView calendarList = 
    (TextView) ((Activity) ctx).findViewById(R.id.calendarList);

ContentResolver contentResolver = ctx.getContentResolver();

ContentValues calEvent = new ContentValues();
calEvent.put(CalendarContract.Events.CALENDAR_ID, 1); // XXX pick)
calEvent.put(CalendarContract.Events.TITLE, title);
calEvent.put(CalendarContract.Events.DTSTART, start.getTimeInMillis());
calEvent.put(CalendarContract.Events.DTEND, end.getTimeInMillis());
calEvent.put(CalendarContract.Events.EVENT_TIMEZONE, "Canada/Eastern");
Uri uri = contentResolver.insert(CalendarContract.Events.CONTENT_URI, calEvent);

// The returned Uri contains the content-retriever URI for 
// the newly-inserted event, including its id
int id = Integer.parseInt(uri.getLastPathSegment());
Toast.makeText(ctx, "Created Calendar Event " + id,
    Toast.LENGTH_SHORT).show();

ありがとうございました。

4

3 に答える 3

1

"Canada/Eastern" の代わりに、 timeZone.getID() を次のように試してください。

TimeZone timeZone = TimeZone.getDefault();
values.put(CalendarContract.Events.EVENT_TIMEZONE, timeZone.getID());

一部のJavaカレンダー/日付関数には0から始まる月があるため、イベントを探すときにも確認してください。したがって、11月を11月ではなく12月に設定します。念のため..

于 2012-12-12T12:19:43.053 に答える
0

これを試して:

calEvent.put(CalendarContract.Events.EVENT_TIMEZONE, CalendarContract.Calendars.CALENDAR_TIME_ZONE);

魔法のように機能します!

于 2014-09-09T12:34:12.327 に答える