2015-06-04 5 views
0

Я могу получить события календаря с устройства Android с помощью курсора событий календаря. Но я хочу извлечь его как файл .ics.Android получить .ics файл для событий календаря

Можно ли извлечь как .ics? Если мы не можем сгенерировать файл .ics из курсора?

Я ожидаю .ics файл, который выглядит, как показано ниже:

BEGIN:VCALENDAR 
VERSION:1.0 
BEGIN:VEVENT 
CATEGORIES:MEETING 
STATUS:TENTATIVE 
DTSTART:19960401T033000Z 
DTEND:19960401T043000Z 
SUMMARY:Your Proposal Review 
DESCRIPTION:Steve and John to review newest proposal material 
CLASS:PRIVATE 
END:VEVENT 
END:VCALENDAR 

EDIT: Также в дальнейшем я хочу группировать несколько событий календаря в один файл .ics

ответ

0

Вы должны скачать Biweekly .jar Первый http://sourceforge.net/projects/biweekly

    ical = new ICalendar();// Creating ical object 

          VEvent event = new VEvent(); 

          Summary summary = event.setSummary("Meeting"); 
          Attendee attendee1=event.addAttendee(email); 
          Attendee attendee2=event.addAttendee(myEmail); 
          Location location=event.setLocation(venue); 

          summary.setLanguage("en-us"); 
          start = dt; 
          event.setDescription(comments); 
          event.setDateStart(new DateStart(start, false)); 


          try { 
           if(chosenFile!=null) 
           event.addAttachment(new Attachment("", chosenFile));// adding attachment 
          } catch (IOException e) { 
           // TODO Auto-generated catch block 
           e.printStackTrace(); 
          } 
          ical.addEvent(event); 

          String filePath =  
     Environment.getExternalStorageDirectory() + "/meetings.ics"; 
          file = new File(filePath); 
     File root = new File(Environment.getExternalStorageDirectory(), "Notes"); 
       if (!root.exists()) { 
        root.mkdirs(); 
       } 
       File file = new File(root,"meetings.ics"); 
       Biweekly.write(ical).go(file); 
          if(!isConnected()) 
           showdialog(); 
          else 
          { 

            // Taking the user to device calender to enable user to store the meeting in local calendar as well if he wishes to 


            Intent calIntent = new Intent(Intent.ACTION_INSERT); 
            calIntent.setType("vnd.android.cursor.item/event");  
            calIntent.putExtra(Events.TITLE, "Meeting"); 
            calIntent.putExtra(Events.EVENT_LOCATION, venue); 
            calIntent.putExtra(Events.DESCRIPTION, comments); 
            calIntent.putExtra(CalendarContract.Attendees.ATTENDEE_NAME, name); 
            calIntent.putExtra(CalendarContract.Attendees.ATTENDEE_EMAIL, email); 
            calIntent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, 
             start.getTime()); 
            calIntent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, 
              start.getTime()+3600000); 

            startActivityForResult(calIntent, 1); 

          } 
+0

это может быть сделано без использования третьего Пати .jar файл? –

+0

Нет, вам нужно бивалют Jar For It, я могу помочь вам в этом, потому что я реализовал то же самое в приложении –

Смежные вопросы