获取日历事件实例

时间:2017-09-17 13:41:05

标签: android google-calendar-api

我想获得今天所有的事件实例。为此,我使用以下代码:

Uri.Builder eventsUriBuilder = CalendarContract.Instances.CONTENT_URI.buildUpon();
    ContentUris.appendId(eventsUriBuilder, start);
    ContentUris.appendId(eventsUriBuilder, end);
 final Cursor cursorInstances = contentResolver.query(eventsUri, null, null, null, sortOrder);

除了全天事件实例外,它很好,它会在今天和明天都返回!

更新 我知道为什么会这样,因为带有全天标志的事件实例的时区是Utc但是我在当地时间得到了这个事件,所以这就是为什么但我仍然不知道如何处理它。

有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

尝试使用此SO post answer中的代码。

Uri.Builder eventsUriBuilder = CalendarContract.Instances.CONTENT_URI.buildUpon();
ContentUris.appendId(eventsUriBuilder, timeNow);
ContentUris.appendId(eventsUriBuilder, endOfToday);
Uri eventsUri = eventsUriBuilder.build();
Cursor cursor = null;       
cursor = mContext.getContentResolver().query(eventsUri, columns, null, null, CalendarContract.Instances.DTSTART + " ASC");
  

注意: 您必须将时间限制附加到事件uri,您不能以任何其他方式排序。为了包括全天活动,   只需将搜索范围扩大到前一天晚上11:59 PM和凌晨12:00   今晚。