2016-08-02 8 views
1

私は、現在の日付のイベントやリマインダーを設定することですが、私はそれが将来の日付に任意のイベントを示す/追加されていないカレンダー上で、将来のイベントを設定するための将来の日付のタイムスタンプを使用していたとき。将来の日付イベントを追加するためのコードは次のとおりです。アンドロイド:デバイスのカレンダー上で、将来の日付のイベントやリマインダーを追加する方法は?

btnSetEvent.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      Date d1 = new Date(1472570400);//Tue, 30 Aug 2016 15:20:00 GMT 
      Calendar cal1 = Calendar.getInstance(); 
      cal1.setTime(d1); 

      Date d2 = new Date(1472574000);//Tue, 30 Aug 2016 16:20:00 GMT 
      Calendar cal2 = Calendar.getInstance(); 
      cal2.setTime(d2); 

      Uri EVENTS_URI = Uri.parse("content://com.android.calendar/events"); 
      ContentResolver cr = getContentResolver(); 

      // event insert 
      ContentValues values = new ContentValues(); 
      values.put("calendar_id", 1); 
      values.put("title", "Reminder Title"); 
      values.put("allDay", 0); 
      values.put(CalendarContract.Events.EVENT_TIMEZONE, TimeZone.getDefault().getID());     

      values.put("dtstart", cal1.getTimeInMillis()); // event starts at Tue, 30 Aug 2016 15:20:00 
      values.put("dtend", cal2.getTimeInMillis()); // ends at Tue, 30 Aug 2016 16:20:00 GMT 

      System.out.println("ALARM TIMES START : " + cal1.getTimeInMillis()); 
      System.out.println("ALARM TIMES END : "+cal2.getTimeInMillis()); 

      values.put("description", "Reminder description");     
      values.put("hasAlarm", 1); 
      Uri event = cr.insert(EVENTS_URI, values); 

      // reminder insert     
      Uri REMINDERS_URI = Uri.parse("content://com.android.calendar/reminders"); 
      values = new ContentValues(); 
      values.put("event_id", Long.parseLong(event.getLastPathSegment()));    

      values.put("method", 1); 
      values.put("minutes", 1); //Notify before the exact time 
      cr.insert(REMINDERS_URI, values); 
     } 
    }); 
} 

ありがとうございます。あなたの長い入力日付が間違っているので

答えて

2

です。私はそれらをデバッグすると、彼らはあなたがDateクラスを使用する必要はありません1970年1月16日ではなく、8月30日2016年

を示しました。電話番号:

Calendar cal1 = new GregorianCalendar(2016, Calendar.AUGUST, 30, 15, 20); 
Calendar cal2 = new GregorianCalendar(2016, Calendar.AUGUST, 30, 16, 20); 

また、値が大きい場合はcal1.setTimeInMillis(millis)に電話することができます。

+0

おかげで私は私のために働いていた私のタイムスタンプlong値と** cal1.setTimeInMillis(ミリ秒)を**修正します。 – Harry

関連する問題