2013-11-27 16 views
13

Czytam wszystkie wydarzenia z kalendarza na Androida i działa poprawnie, używając poniższego kodu, ale chcę pobrać wszystkie wydarzenia z kalendarza google z kont poczty użytkownika .Jak mogę to zrobić? Wszelkie sugestie lub przykładowy program będą naprawdę pomocne!Jak czytać wydarzenia z kalendarza Google w Androidzie?

Na przykład: chcę uzyskać zdarzenia dla [email protected] (konto poczty którą otwarto w android komórkowego)

public static void readCalendarEvent(Context context) throws ParseException { 
     ContentResolver contentResolver = context.getContentResolver(); 
     Calendar calendar = Calendar.getInstance(); 
     String dtstart = "dtstart"; 
     String dtend = "dtend"; 


     SimpleDateFormat displayFormatter = new SimpleDateFormat("MMMM dd, yyyy (EEEE)"); 

     stime=displayFormatter.format(calendar.getTime());  

     SimpleDateFormat startFormatter = new SimpleDateFormat("MM/dd/yy"); 
     String dateString = startFormatter.format(calendar.getTime()); 

     long after = calendar.getTimeInMillis(); 
     SimpleDateFormat formatterr = new SimpleDateFormat("hh:mm:ss MM/dd/yy"); 
     Calendar endOfDay = Calendar.getInstance(); 
     Date dateCCC = formatterr.parse("47:59:59 " + dateString); 
     endOfDay.setTime(dateCCC); 



     cursor = contentResolver.query(Uri.parse("content://com.android.calendar/calendars"), (new String[] { "calendar_id", "title", "description", "dtstart", "dtend","eventTimezone", "eventLocation" }), "(" + dtstart + ">" + after + " and " + dtend + "<" + endOfDay.getTimeInMillis() + ")", null, "dtstart ASC"); 
     gCalendar = new ArrayList<GoogleCalendar>(); 
     try { 


      if (cursor.getCount() > 0) { 


       while (cursor.moveToNext()) { 
        GoogleCalendar googleCalendar = new GoogleCalendar(); 
        gCalendar.add(googleCalendar); 
        int calendar_id = cursor.getInt(0); 
        googleCalendar.setCalendar_id(calendar_id); 
        String title = cursor.getString(1); 
        googleCalendar.setTitle(title); 
        String description = cursor.getString(2); 
        googleCalendar.setDescription(description); 
        String dtstart1 = cursor.getString(3); 
        dt=convertDate(dtstart1,"hh:mm:ss"); 

        googleCalendar.setDtstart(dt);     

       String dtend1 = cursor.getString(4); 
        googleCalendar.setDtend(dtend1); 


        String eventTimeZone=cursor.getString(5); 
        googleCalendar.setEventTimeZone(eventTimeZone); 
        String eventlocation = cursor.getString(6); 

        googleCalendar.setEventlocation(eventlocation); 



       } 
      } 
     } catch (AssertionError ex) { 
      ex.printStackTrace(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 
+0

dostałeś rozwiązanie ? jeśli tak, proszę, pomóż mi. –

+0

Czy sprawdziłeś tę stronę - https://live.temboo.com/library/Library/Google/Calendar/
To może ci pomóc. Ref # SO- https://stackoverflow.com/questions/15438606/how-to-start-with-google-calendar-api-in-android – Yup

Odpowiedz

0

Możesz przeczytać this page. Napisano, że można uzyskać informacje z kalendarza.

Mówiąc prościej,

  1. dostać rachunek rejestrowane w urządzeniu z Androidem. (Obiektem zwracanym jest Konto.)
  2. Uzyskaj listę kalendarza, który ma określony.
  3. uzyskać zdarzenia w zakresie określonego czasu. (jest to jeden kalendarz.)
  4. powtórz 3 dla wszystkich kalendarzy.
4

Ten post jest trochę stary, ale tu jest inny proste rozwiązanie dla uzyskania danych dotyczących Calendar dostawcy treści w Androidzie:

Użyj tego lib: https://github.com/EverythingMe/easy-content-providers

A teraz uzyskać wszystkie kalendarze :

CalendarProvider calendarProvider = new CalendarProvider(context); 
List<Calendar> calendars = calendarProvider.getCalendars().getList(); 

Albo dostać wszystkie Wydarzenia z konkretnego kalendarza:

List<Event> calendars = calendarProvider.getEvents(calendar.id).getList(); 

Istnieje również opcja, aby uzyskać Przypomnienia, osoby do wzięcia udziału, wystąpienia.

Działa z listami lub kursorem, a tam przykładowa aplikacja, aby zobaczyć, jak to wygląda i działa. W rzeczywistości, nie ma wsparcia dla wszystkich dostawców treści, takich jak Android: kontakty, SMS, połączenia, ... Pełna doc ze wszystkimi opcjami: https://github.com/EverythingMe/easy-content-providers/wiki/Android-providers

Nadzieję, że pomogło :)

+0

Wydarzenie o powtarzającym się wydarzeniu –

+0

@sromku to nie wydaje się wdrażać ustawiaczy .. Wielkie lib chociaż –

+0

Czy ktoś mógłby opublikować pełny przykład tego? –

Powiązane problemy