2017-09-13 11 views
0

設定しようとしているイベントの開始日に問題があります。たとえば私たちが9/13/17 11:05 amの場合、DTSTARTを定義していますが、イベントは9/13/17 11:30 amの午後12:30までの日付を表示しています。繰り返しパラメータが正しい。定期的なカレンダーイベントの作成 - 開始日の設定に関する問題

毎月午後6時に最初の日にイベントを設定しようとしています。例えば、私たちはseptの13人です。私は10月1日を始め、毎月1日に始まりたい。

私のコードで何が問題になっていますか?

long startMillis = 0; 
    long endMillis = 0; 
    Calendar beginTime = Calendar.getInstance(); 
    beginTime.set(2017, 10, 1, 18, 00); 
    startMillis = beginTime.getTimeInMillis(); 
    Calendar endTime = Calendar.getInstance(); 
    endTime.set(2017, 10, 1, 18, 15); 
    endMillis = endTime.getTimeInMillis(); 

    Intent calIntent = new Intent(Intent.ACTION_INSERT); 
    calIntent.setType("vnd.android.cursor.item/event"); 
    calIntent.putExtra(CalendarContract.Events.TITLE, "Monthly Change"); 
    calIntent.putExtra(CalendarContract.Events.DESCRIPTION, "test"); 
    GregorianCalendar calDate = new GregorianCalendar(2014, 10, 1); 
    calIntent.putExtra(CalendarContract.Events.EVENT_TIMEZONE, timezone); 
    calIntent.putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY, false); 
    calIntent.putExtra(CalendarContract.Events.RRULE, "FREQ=MONTHLY"); 
    calIntent.putExtra(CalendarContract.Events.RDATE, startMillis); 
    calIntent.putExtra(CalendarContract.Events.DTSTART, startMillis); 
    calIntent.putExtra(CalendarContract.Events.DTEND, endMillis); 

    startActivity(calIntent); 

答えて

0

私は、開始時間と期間を定義することで、解決策を見つけた:

Uri eventsUri; 
    if (android.os.Build.VERSION.SDK_INT <= 7) { 
     eventsUri = Uri.parse("content://calendar/events"); 
    } else { 
     eventsUri = Uri.parse("content://com.android.calendar/events"); 
    } 
    Calendar cal = Calendar.getInstance(); 
    ContentValues event = new ContentValues(); 
    event.put("calendar_id", 1); 
    event.put("title", "Event Title"); 
    event.put("description", "Event Desc"); 
    event.put("eventLocation", "Event Location"); 
    cal.set(2017, 9, 1, 14, 0); 
    event.put("dtstart", cal.getTimeInMillis()); 
    event.put(CalendarContract.Reminders.DTSTART, cal.getTimeInMillis()); 
    event.put("rrule", "FREQ=MONTHLY"); 
    event.put("allDay", 0); // 0 for false, 1 for true 
    event.put("eventStatus", 1); 
    event.put("hasAlarm", 1); // 0 for false, 1 for true 
    event.put("duration","P900S"); 
    event.put("eventTimezone", TimeZone.getDefault().getID()); 
    Uri url = getActivity().getContentResolver().insert(eventsUri, event); 


    long eventID = parseLong(url.getLastPathSegment()); 
    String reminderUriString = "content://com.android.calendar/reminders"; 

    ContentValues reminderValues = new ContentValues(); 
    SettingsFragment sf = new SettingsFragment(); 
    String email = sf.getMainEmail(); 
    reminderValues.put("event_id", eventID); 
    reminderValues.put("minutes", 10); // Default value of the 
    // reminderValues.put("method", 1); // Alert Methods: Alert(1) Email(2) SMS(3) 
    reminderValues.put("method", 2); // Alert Methods: Alert(1) Email(2) SMS(3) 
    Uri reminderUri = getActivity().getApplicationContext().getContentResolver(). 
      insert(Uri.parse(reminderUriString), reminderValues); 
関連する問題