2016-05-13 3 views
0

Я использую этот код и получаю события из календаря, и он работает нормально, но я хочу получать события из календаря учетных записей Google. Например, я хочу получить (deepakcando90 @ gmail. com) также события календаря Google? Я знаю, что это возможно, но не знаю, как его реализовать?Google calendar get events

 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("EEEE, MMMM dd, yyyy"); 

    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/events"), (new String[] { "calendar_id", "title", "description", "dtstart", "dtend", "eventLocation" }), "(" + dtstart + ">" + after + " and " + dtend + "<" + endOfDay.getTimeInMillis() + ")", null, "dtstart ASC"); 
    gCalendar = new ArrayList<GoogleCalendar>(); 
    try { 
     System.out.println("Count=" + cursor.getCount()); 

     if (cursor.getCount() > 0) { 

      System.out.println("the control is just inside of the cursor.count loop"); 
      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); 
       googleCalendar.setDtstart(dtstart1); 
       String dtend1 = cursor.getString(4); 
       googleCalendar.setDtend(dtend1); 
       String eventlocation = cursor.getString(5); 
       googleCalendar.setEventlocation(eventlocation); 

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

}

ответ

0

Вы можете попробовать OAuth 2.0 service accounts правильно открыть учетные записи пользователей. Использование учетной записи службы позволяет олицетворять пользователей и выполнять операции от их имени.

Доступ к календарям домена в качестве приложения

приложения может получить доступ к домену собственности календари без запроса учетных данных пользователя, если он выполняет проверку подлинности с помощью service account. Учетная запись службы должна иметь необходимый доступ, используя domain-wide authority delegation. Чтобы олицетворять учетную запись пользователя, укажите адрес электронной почты учетной записи пользователя с помощью метода setServiceAccountUser фабрики GoogleCredential.

Надеюсь, это поможет. Goodluck :)

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