无法同步创建Android本地日历

时间:2014-01-04 16:49:14

标签: java android calendar google-calendar-api

我和这个日历的东西一直在争吵。我想创建一个不与任何帐户同步的LOCAL日历。

我使用以下代码创建了一个本地日历:

public static long createLocalCalendar()
    {
        ContentValues values = new ContentValues();
        values.put(
                Calendars.ACCOUNT_NAME, 
        "nav_shift_manager"); //Account name becomes equal to "nav_shift_manager" !!TEST!!
        values.put(
                Calendars.ACCOUNT_TYPE, 
                CalendarContract.ACCOUNT_TYPE_LOCAL);
        values.put(
                Calendars.NAME, 
        "NAV Shift Manager Calendar");
        values.put(
                Calendars.CALENDAR_DISPLAY_NAME, 
        "NAV Shift Manager Calendar");
        values.put(
                Calendars.CALENDAR_COLOR, 
                0xffff0000);
        values.put(
                Calendars.CALENDAR_ACCESS_LEVEL, 
                Calendars.CAL_ACCESS_OWNER);
        values.put(
                Calendars.OWNER_ACCOUNT, 
        "some.account@googlemail.com");
        values.put(
                Calendars.CALENDAR_TIME_ZONE, 
        "Europe/London");
        Uri.Builder builder = 
            CalendarContract.Calendars.CONTENT_URI.buildUpon(); 
        builder.appendQueryParameter(
                Calendars.ACCOUNT_NAME, 
        "com.navshiftmanager");
        builder.appendQueryParameter(
                Calendars.ACCOUNT_TYPE, 
                CalendarContract.ACCOUNT_TYPE_LOCAL);
        builder.appendQueryParameter(
                CalendarContract.CALLER_IS_SYNCADAPTER, 
        "true");
        Uri uri = TrocasNAVApp.getContext().getContentResolver().insert(builder.build(), values);

        // Now get the CalendarID :
        return Long.parseLong(uri.getLastPathSegment());
    }

我在索尼XPERIA J上运行了这个应用程序,它运行完美!不过我已经在三星Galaxy S3上尝试了它,它根本不起作用。

首先,每个创建的事件,设备都会自动将事件设置为“脏”和“删除”。我根本得不到它。看起来他期待与某种东西进行某种同步,但我已经明确地写了我想要一个ACCOUNT_TYPE_LOCAL。我真的不明白为什么不同手机中的相同代码的工作方式不同。在我的XPERIA J上,添加的事件完美无缺,如果我删除它们,它们就会永远消失。

在我的Samsung S3上,所有事件都自动设置为“已删除”和“脏”,我点击删除它们并且它们永远不会被删除,因为它们似乎期待某种同步。这意味着无法使用检查“已删除”的技巧,因为它们始终设置为“已删除”。

Android日历的行为不应该是通用的吗?

0 个答案:

没有答案