4
private void setEvent(){        
    long startMilis = 0;
    int mCalId = 1;
    long endMilis = 0;
    Calendar beginTime = Calendar.getInstance();
    beginTime.set(2013, 1, 29, 9, 10);
    startMilis = beginTime.getTimeInMillis();  
    Calendar endTime = Calendar.getInstance();
    endTime.set(2013, 1, 30, 10,10);
    endMilis = endTime.getTimeInMillis();

    ContentResolver cr = getContentResolver();
    ContentValues values = new ContentValues();
    values.put(Events.CALENDAR_ID, mCalId);
    values.put(Events.DTSTART, startMilis);
    values.put(Events.DTEND, endMilis);
    values.put(Events.TITLE,"Special Event");
    values.put(Events.DESCRIPTION, "Group Activity");
    values.put(Events.EVENT_TIMEZONE, "America/Los_Angeles");
    Uri uri = cr.insert(Events.CONTENT_URI, values);
    Toast.makeText(this, "Event Added", Toast.LENGTH_LONG).show();
}

これは、イベントを Android カレンダーに追加するコードのスニペットです。コードは正常に動作します。

しかし、デバイスでテストすると、指定されたイベントは実際には追加されず、カレンダーにも表示されません。コードには完全にエラーがなく、必要な権限を提供しています。

誰かが私がどこで間違っているのか教えてください。

4

2 に答える 2

0

間違った Uri を使用している可能性があります。アプリでこれを使用しています。

    Uri EVENTS_URI = Uri.parse(CalendarContract.Events.CONTENT_URI.toString());
    ContentResolver cr = getActivity().getContentResolver();

    ContentValues values = new ContentValues();

    values.put("calendar_id", 1);       
    values.put(Events.TITLE, recordatorio);
    values.put(Events.ALL_DAY, 1);
    values.put(Events.EVENT_LOCATION, lugar);
    values.put("dtstart", calDate.getTimeInMillis());
    values.put("dtend", calDate.getTimeInMillis());
    values.put(Events.DESCRIPTION, observaciones);
    values.put("availability", 0);
    values.put(Events.HAS_ALARM, true);     
    values.put(Events.EVENT_TIMEZONE, TimeZone.getDefault().toString());

    Uri uri = cr.insert(EVENTS_URI, values);
// to get the Id Event          
    long eventID = Long.parseLong(uri.getLastPathSegment());
于 2014-07-24T03:41:35.607 に答える