gpt4 book ai didi

android - 使用 CalendarContract 阅读所有今天的事件 - Android 4.0+

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:51:58 26 4
gpt4 key购买 nike

我正在尝试使用 Android 的新日历 API 来读取今天的所有日历事件。我无法在数据库查询中找到正确的选择以返回所有事件。似乎所有重复发生的和全天发生的事件都被排除在选择之外。哪些选择参数允许我从日历 API 获取今天的所有事件?

这是我目前的尝试:

    Cursor cur = null;
String selection = "((" + CalendarContract.Events.DTSTART
+ " >= ?) AND (" + CalendarContract.Events.DTEND + " <= ?))";
Time t = new Time();
t.setToNow();
String dtStart = Long.toString(t.toMillis(false));
t.set(59, 59, 23, t.monthDay, t.month, t.year);
String dtEnd = Long.toString(t.toMillis(false));
String[] selectionArgs = new String[] { dtStart, dtEnd };
cur = c.getContentResolver().query(CalendarContract.Events.CONTENT_URI,
null, selection, selectionArgs, null);

我不确定如何扩大选择或添加选择以获得重复事件和全天事件。任何帮助,将不胜感激。

最佳答案

要获取今天的所有事件,包括重复发生的事件,您需要使用 Instances 表,即

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 和今晚 12:00。

关于android - 使用 CalendarContract 阅读所有今天的事件 - Android 4.0+,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10133616/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com