0

デフォルトの Android カレンダーに定期的なイベントを追加し、ユーザーが希望する場合は変更する必要があります。カレンダーの意図を開かずに、これを直接行う必要があります。次のコードを使用しました。トーストには、最後に追加されたイベントのイベント ID が表示されますが、そのイベントは電話の予定表には表示されません。本当に困ったが、問題を解決できなかった..助けてください..

 public void createEvent(String title, String location, String description){

    Calendar cal = Calendar.getInstance();
     cal.setTimeZone(TimeZone.getTimeZone("GMT-1"));
     Date dt = null;
     Date dt1 = null;
     String Stime="2013-11-13 07:30";
     String Etime="2013-11-13 08:00";
     try {
      dt = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(Stime);
      dt1 = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(Etime);

      Calendar beginTime = Calendar.getInstance();
      cal.setTime(dt);

      // beginTime.set(2013, 7, 25, 7, 30);
      beginTime.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),
      cal.get(Calendar.DATE), cal.get(Calendar.HOUR_OF_DAY),
      cal.get(Calendar.MINUTE));

      Calendar endTime = Calendar.getInstance();
      cal.setTime(dt1);

      // endTime.set(2013, 7, 25, 14, 30);
      // endTime.set(year, month, day, hourOfDay, minute);
      endTime.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),
      cal.get(Calendar.DATE), cal.get(Calendar.HOUR_OF_DAY),
      cal.get(Calendar.MINUTE));

      ContentResolver cr = this.getContentResolver();
      ContentValues values = new ContentValues();

      values.put(Events.DTSTART, beginTime.getTimeInMillis());
      values.put(Events.DTEND, endTime.getTimeInMillis());
      values.put(Events.TITLE, title);
      values.put(Events.DESCRIPTION, description);
      values.put(Events.CALENDAR_ID, 3 );
      // values.put(Events._ID, meeting_id);
      values.put(Events.EVENT_TIMEZONE, TimeZone.getDefault().getID());

      Uri uri = cr.insert(Events.CONTENT_URI, values);
      long eventID = Long.parseLong(uri.getLastPathSegment());

        Toast toast =Toast.makeText(getApplicationContext(), "Calender Event Added" + eventID,Toast.LENGTH_LONG);
        toast.show();

     } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
       }
    }

また、14未満のAndroidバージョンでも同じことを使用する必要があります。コードを何で更新すればよいですか?? ありがとう..

4

2 に答える 2