从日历提供程序Android获取事件

时间:2015-09-30 13:31:12

标签: android calendar

我使用这个简单的方法从日历提供程序中获取事件。但我只从Facebook日历和假期日历中获得活动。为什么它不能与谷歌日历等其他日历一起使用?

public List<EventData> getEventsFromDay(Calendar beginTime, Calendar endTime) {
    //convert Callendar data to millis
    long beginMillis = beginTime.getTimeInMillis();
    long endMillis = endTime.getTimeInMillis();
    //list of all events this day
    List<EventData> allEvents = new ArrayList<>();

    ///////////searching for Events id this day from Instances table

    //what we want from data
    String[] instanceQuery =
            new String[]{
                    Instances._ID,
                    Instances.BEGIN,
                    Instances.END,
                    Instances.EVENT_ID};

    //cursor get needed data
    Cursor cursor =
            Instances.query(mContext.getContentResolver(), instanceQuery, beginMillis, endMillis);

    if (cursor.moveToFirst()) {
        do {
            //save id of every event this day
            EventData singleEvent = new EventData();
            singleEvent.setId(cursor.getLong(3));
            allEvents.add(singleEvent);
        } while (cursor.moveToNext());
    }
    //always close cursor!!
    cursor.close();

    ////////// now searching for details of events from Events table

    //what we want from data
    String[] eventQuery =
            new String[]{
                    Events._ID,
                    Events.TITLE,
                    Events.EVENT_COLOR,
            };


    for (int i = 0; i < allEvents.size(); i++) {

    //cursor get needed data
    Cursor eventCursor =
            mContext.getContentResolver().
                    query(
                            Events.CONTENT_URI,
                            eventQuery,
                            Events._ID + " = ? ",
                            new String[] {Long.toString(allEvents.get(i).getId())},
                            null);
    //convert data from cursor
    if (eventCursor.moveToFirst()) {
            allEvents.get(eventCursor.getPosition()).setTitle(eventCursor.getString(1));
            allEvents.get(eventCursor.getPosition()).setColor(eventCursor.getString(2));
    }
        //always close cursor!!
        eventCursor.close();
    }

    return allEvents;

}

整个应用程序在这里:https://github.com/mulciber55/WombatCalendar

0 个答案:

没有答案