gpt4 book ai didi

android - 无法以编程方式从 Android 日历中读取重复发生的事件

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:14:00 25 4
gpt4 key购买 nike

我已按照此链接中的教程进行操作 - http://jimblackler.net/blog/?p=151&cpage=2#comment-52767访问内部 android 日历数据库(即使 SDK 未正式支持它)。它适用于除重复事件之外的所有条目。游标根本不返回任何重复发生的事件。有人可以帮我吗。以下是我的游标声明 -

    String[] projection = new String[] { "title", "description", "dtstart", "eventLocation" };
String selection = "(calendar_id=" + calID + ")AND " + (now - window)
+ "<dtstart AND dtstart< " + (now + (window));
String sortorder = "dtstart ASC";

Cursor managedCursor = getCalendarManagedCursor(projection, selection,
"events", sortorder);

private Cursor getCalendarManagedCursor(String[] projection,
String selection, String path, String sort) {
Uri calendars = Uri.parse("content://calendar/" + path);
Cursor managedCursor = null;
try {
managedCursor = getContentResolver().query(calendars, projection,
selection, null, sort);
} catch (IllegalArgumentException e) {
Log.w(DEBUG_TAG,
"Failed to get provider at [" + calendars.toString() + "]");
}

if (managedCursor == null) {
// try again
calendars = Uri.parse("content://com.android.calendar/" + path);
try {
managedCursor = getContentResolver().query(calendars,
projection, selection, null, sort);
} catch (IllegalArgumentException e) {
Log.w(DEBUG_TAG,
"Failed to get provider at [" + calendars.toString()
+ "]");
}`

最佳答案

如果您需要查找重复发生的事件,请使用Instances 表。

查询它的URI是:

  • instances/when/*/* - 两次之间的所有实例(毫秒)
  • instances/whenbyday/*/* - 两次(天)之间的所有实例
  • instances/groupbyday/*/* - 与 whenbyday 相同,但按开始日期分组

该表中的列列表是:

  • _id - 此实例的 ID
  • event_id - 创建它的事件
  • begin - 开始时间(毫秒)
  • end - 结束时间(毫秒)
  • startDay - 实例的开始日期
  • endDay - 实例的结束日期
  • startMinute - 自午夜以来的分钟数 (0..1440)
  • endMinute - 自午夜以来的分钟数

您还可以使用 EventsCalendar 表中的列。

您可以在链接的同一页面上看到示例:http://jimblackler.net/blog/?p=151

例子:

String[] projection = new String[] {
"title", "description", "begin", "eventLocation"
};
String selection = "calendar_id = " + calID;
String path = "instances/when/" + (now - window) + "/" + (now + window);
String sortOrder = "begin DESC";
Cursor managedCursor = getCalendarManagedCursor(
projection, selection, path, sortorder);

编辑:Google 似乎开始记录日历提供程序。浏览至 Calendar Providier | Google Developers了解更多信息。

关于android - 无法以编程方式从 Android 日历中读取重复发生的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7130025/

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