Cannot read recurring events from android calendar programmatically

后端 未结 2 1565
一生所求
一生所求 2020-12-09 13:47

I have followed the tutorial in this link - http://jimblackler.net/blog/?p=151&cpage=2#comment-52767 to access the internal android calendar database (even though it is

2条回答
  •  死守一世寂寞
    2020-12-09 14:02

    I finally made this work in the following way. Remember DTSTART, DTEND, _ID don't work for Instances table even if you can access them. Use BEGIN, END and Event_ID instead. Please refer to these 2 links: How to get calendar events with title including recurring events and Android Calendar Recurring Events Have Wrong End Date/Time

            long now = System.currentTimeMillis();
    
            Uri.Builder eventsUriBuilder = CalendarContract.Instances.CONTENT_URI.buildUpon();
            ContentUris.appendId(eventsUriBuilder, Long.MIN_VALUE);
            ContentUris.appendId(eventsUriBuilder, Long.MAX_VALUE);
    
            Uri eventsUri = eventsUriBuilder.build();
            Cursor cursor = context.getContentResolver().query(
                eventsUri,
                new String[] {CalendarContract.Instances.CALENDAR_ID, CalendarContract.Instances.TITLE,
                        CalendarContract.Instances.DESCRIPTION, CalendarContract.Instances.BEGIN,
                        CalendarContract.Instances.END, CalendarContract.Instances.EVENT_LOCATION,
                        CalendarContract.Instances.EVENT_ID},
                CalendarContract.Instances.BEGIN + " >= " + now + " and " + CalendarContract.Instances.BEGIN 
                        + " <= " + (now + 2592000000L) + " and " + CalendarContract.Instances.VISIBLE + " = 1",
                null,
                CalendarContract.Instances.BEGIN + " ASC");
    

提交回复
热议问题