以编程方式创建的新日历不可见,为什么?在android中

时间:2014-08-21 08:28:06

标签: android calendar google-calendar-api android-calendar

我正在备份和恢复日历,在恢复期间如果电话中没​​有日历(但是相关帐户存在),我正在使用以下代码创建新日历,它已成功插入到db(我可以看到返回URI和id的值)。但是在日历应用程序中,它可以看到一秒钟并且消失,我不知道出了什么问题,我已经在插入时使用1显示了可见标记,但仍然没有工作。可以帮助。

final String INT_NAME_PREFIX = "priv";
                Uri calUri = CalendarContract.Calendars.CONTENT_URI
                        .buildUpon()
                        .appendQueryParameter(
                                CalendarContract.CALLER_IS_SYNCADAPTER, "true")
                        .appendQueryParameter(Calendars.ACCOUNT_NAME,
                                mCurrentMirrorItem.ACCOUNT_NAME)
                        .appendQueryParameter(Calendars.ACCOUNT_TYPE,
                                mCurrentMirrorItem.ACCOUNT_TYPE).build();

                String dispName = mItem.CALENDAR_DISPLAY_NAME;
                String intName = INT_NAME_PREFIX + dispName;
                ContentValues contentValues = new ContentValues();

                if (columnNames.contains(Calendars.ACCOUNT_NAME)) {
                    contentValues.put(CalendarContract.Calendars.ACCOUNT_NAME,
                            mItem.ACCOUNT_NAME);
                }
                if (columnNames.contains(Calendars.ACCOUNT_TYPE)) {
                    contentValues.put(CalendarContract.Calendars.ACCOUNT_TYPE,
                            mItem.ACCOUNT_TYPE);
                }
                if (columnNames.contains(Calendars.NAME)) {
                    contentValues.put(CalendarContract.Calendars.NAME, intName);
                }
                if (columnNames.contains(Calendars.CALENDAR_DISPLAY_NAME)) {
                    contentValues.put(
                            CalendarContract.Calendars.CALENDAR_DISPLAY_NAME,
                            mItem.CALENDAR_DISPLAY_NAME);
                }
                if (columnNames.contains(Calendars.CALENDAR_COLOR)) {
                    contentValues.put(CalendarContract.Calendars.CALENDAR_COLOR,
                            mItem.CALENDAR_COLOR);
                }
                if (columnNames.contains(Calendars.CALENDAR_ACCESS_LEVEL)) {
                    contentValues.put(
                            CalendarContract.Calendars.CALENDAR_ACCESS_LEVEL,
                            Calendars.CAL_ACCESS_OWNER);
                }

                if (columnNames.contains(Calendars.OWNER_ACCOUNT)) {
                    contentValues.put(CalendarContract.Calendars.OWNER_ACCOUNT,
                            mItem.ACCOUNT_NAME);
                }
                if (columnNames.contains(Calendars.VISIBLE)) {
                    contentValues.put(CalendarContract.Calendars.VISIBLE, 1);
                }
                if (columnNames.contains(Calendars.SYNC_EVENTS)) {
                    contentValues.put(CalendarContract.Calendars.SYNC_EVENTS, 1);
                }

                returnUri = cr.insert(calUri, contentValues);
                long eventID = Long.parseLong(returnUri.getLastPathSegment());
                calid = String.valueOf(eventID);

                Log.d(tag,"calendar name: "+mItem.CALENDAR_DISPLAY_NAME+"\tNew calendar id is: "+calid+"\nInserted URI: "+returnUri);

0 个答案:

没有答案