【发布时间】:2013-07-19 13:56:47
【问题描述】:
对于我的一个应用程序,我们必须在日历中插入一个事件。
long calID = 3;
long startMillis = 0;
long endMillis = 0;
Calendar beginTime = Calendar.getInstance();
beginTime.set(2012, 8, 10, 7, 30);
startMillis = beginTime.getTimeInMillis();
Calendar endTime = Calendar.getInstance();
endTime.set(2012, 8, 10, 8, 45);
endMillis = endTime.getTimeInMillis();
ContentResolver cr = getContentResolver();
ContentValues values = new ContentValues();
values.put(Events.DTSTART, startMillis);
values.put(Events.DTEND, endMillis);
values.put(Events.TITLE, "Jazzercise");
values.put(Events.DESCRIPTION, "Group workout");
values.put(Events.CALENDAR_ID, calID);
values.put(Events.EVENT_TIMEZONE, "America/Los_Angeles");
Uri uri = cr.insert(CalendarContract.Calendars.CONTENT_URI, values);
// get the event ID that is the last element in the Uri
long eventID = Long.parseLong(uri.getLastPathSegment());
Log.d("MainActivity", "addCalendarEvents :: " + "eventID :: "+eventID);
Cursor cursor = cr.query(Events.CONTENT_URI, null, Events.TITLE +"='Jazzercise'", null, null);
Log.d("MainActivity", "addCalendarEvents :: " + "cursor :: "+cursor.getCount());
提供于http://developer.android.com/guide/topics/providers/calendar-provider.html 但是,首先它给了我一个错误
Failed to get type for: content://com.android.calendar (Unknown URL content://com.android.calendar)
游标计数也为零。当我尝试使用标题搜索时。 注意:我尝试使用意图服务添加事件,但是我不希望用户在添加事件时自行决定。
我已经在 Galaxy Nexus (4.1) 和 Nexus S(4.1) 上对其进行了测试。
对于要与 ICS 一起使用的正确 UI 有任何帮助吗?
BR, 杰希尔
【问题讨论】:
-
注意:我没有收到明显的崩溃或错误。
-
如果开发社区的某个人在 4.0 ICS 设备中尝试此操作,那将非常有帮助。如果是 Jellybean 问题或 4.0 及以上问题。
-
这个错误出现在 jellybean 更新之后,我在 nexus 7 上遇到了同样的问题。在 ICS 上我的代码工作,更新后它停止并且 logcat 报告你引用的行。然后它提供 com.google.android.calendar 作为替代,但如果我在我的代码中替换它,这仍然不起作用。
标签: android calendar android-contentprovider