我如何解决;事件值必须包括eventTimezone“;在android日历中?
Hi开发了一个android应用程序,具有一些功能,可以在日历应用程序中添加我们的事件详细信息。我的应用程序运行良好。但有时,它会在调试时强制关闭并在logcat中显示错误。我为旧版和新版的android操作系统使用了2个内容uri 那些是我如何解决;事件值必须包括eventTimezone“;在android日历中?,android,android-contentprovider,android-calendar,Android,Android Contentprovider,Android Calendar,Hi开发了一个android应用程序,具有一些功能,可以在日历应用程序中添加我们的事件详细信息。我的应用程序运行良好。但有时,它会在调试时强制关闭并在logcat中显示错误。我为旧版和新版的android操作系统使用了2个内容uri 那些是 if(){ Uri calendars = Uri.parse("content://calendar/calendars"); } else{ calendars = Uri.parse("content://com.an
if(){
Uri calendars = Uri.parse("content://calendar/calendars");
}
else{
calendars = Uri.parse("content://com.android.calendar/calendars");
}
我试图解决我的问题,但没有成功。请为我提供这个问题的最佳解决方案。我在下面添加了我的日志
提前谢谢
java.lang.IllegalArgumentException: Event values must include an eventTimezone
03-02 18:28:35.836: E/AndroidRuntime(1362): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:165)
03-02 18:28:35.836: E/AndroidRuntime(1362): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
03-02 18:28:35.836: E/AndroidRuntime(1362): at android.content.ContentProviderProxy.insert(ContentProviderNative.java:415)
03-02 18:28:35.836: E/AndroidRuntime(1362): at android.content.ContentResolver.insert(ContentResolver.java:730)
03-02 18:28:35.836: E/AndroidRuntime(1362): at in.plackal.lovecyclesfree.CycleManager.setAlertOnDevice(CycleManager.java:1083)
03-02 18:28:35.836: E/AndroidRuntime(1362): at in.plackal.lovecyclesfree.ActivityManager.onPause(ActivityManager.java:83)
03-02 18:28:35.836: E/AndroidRuntime(1362): at android.app.Activity.performPause(Activity.java:4563)
03-02 18:28:35.836: E/AndroidRuntime(1362): at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1195)
03-02 18:28:35.836: E/AndroidRuntime(1362): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2693)
试试这个:
Calendar cal = Calendar.getInstance();
long l = cal.getTimeInMillis();
long cal_Id = 1;
ContentResolver CR = getContentResolver();
ContentValues calEvent = new ContentValues();
calEvent.put(CalendarContract.Events.CALENDAR_ID, cal_Id); // XXX pick)
calEvent.put(CalendarContract.Events.TITLE, " Demo Data");
calEvent.put(CalendarContract.Events.DTSTART,l);
calEvent.put(CalendarContract.Events.DTEND, l+60 * 1000);
calEvent.put(CalendarContract.Events.EVENT_TIMEZONE, "Indian/Christmas"); // Here choose your location time zone
ContentResolver C2 = getContentResolver();
Uri uri = C2.insert(URL, calEvent);
int id = Integer.parseInt(uri.getLastPathSegment());
尝试添加这一点也可能是它将工作
eventValues.put("eventTimezone", TimeZone.getDefault().getID());
谢谢你的回复。我在上一篇文章中看到了这一点,但没有得到帮助。你可以在以下URL中找到一些关于你的问题的信息:--[[Android]谷歌日历API的ICS更改]()如果你使用谷歌API的>=14,你需要同时使用这两个。你不应该添加静态CALU id。