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

从日历提供程序Android获取事件,android,calendar,Android,Calendar,我使用这个简单的方法从日历提供程序获取事件。但我只从Facebook日历和假日日历中获取活动。为什么它不能与谷歌日历等其他日历一起使用 public List<EventData> getEventsFromDay(Calendar beginTime, Calendar endTime) { //convert Callendar data to millis long beginMillis = beginTime.getTimeInMillis(); l

我使用这个简单的方法从日历提供程序获取事件。但我只从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;

}
公共列表getEventsFromDay(日历开始时间、日历结束时间){
//将调用者数据转换为毫秒
long beginMillis=beginTime.getTimeInMillis();
long-endMillis=endTime.getTimeInMillis();
//当天所有活动的列表
List allEvents=new ArrayList();
///////////从实例表中搜索当天的事件id
//我们想要从数据中得到什么
字符串[]实例查询=
新字符串[]{
实例。\u ID,
例如,开始,
最后,,
实例。事件_ID};
//游标获取所需的数据
光标=
query(mContext.getContentResolver(),instanceQuery,beginMillis,endMillis);
if(cursor.moveToFirst()){
做{
//保存当天所有活动的id
EventData singleEvent=新的EventData();
setId(cursor.getLong(3));
allEvents.add(singleEvent);
}while(cursor.moveToNext());
}
//始终关闭光标!!
cursor.close();
//////////现在正在从事件表中搜索事件的详细信息
//我们想要从数据中得到什么
字符串[]事件查询=
新字符串[]{
事件,
事件名称,
Events.EVENT\u颜色,
};
对于(int i=0;i

整个应用程序在这里:

问题已解决。这个代码很好,我只是把开始时间和结束时间放错了。。。