簡體   English   中英

是否有日歷事件的持久密鑰

[英]is there a persistent key for calendar events

我的應用程序需要將信息與日歷事件相關聯。 為此,它需要為每個事件提供一個永久性的ID,以便它可以在事件的時間更改時跟蹤事件或檢測事件的刪除時間。

另外,我想要一個日歷固有的ID,而不僅僅是在特定設備上唯一的ID,因此如果我的應用程序在其他android設備甚至其他平台上運行,則很有用。

我看過_ID和_SYNC_ID。 它看起來既是唯一的,又在特定設備上是持久的,而在所有設備上都不一樣。 我想要的鍵是本機事件鍵,來自它所屬的日歷。 例如,對於一個Outlook事件,我想我需要Outlook的鑰匙。

Calendar API是否提供這樣的密鑰? 如果不是,是否有獲取我正在尋找的本機密鑰的工具?

謝謝。

據我所知,Event_ID具有持久性。 它是PK,因此除非刪除行后再使用PK,否則它應該是可靠的。 唯一的例外是用戶清除日歷數據庫並重新同步。 我認為,在那種情況下,所有PK都是全新的。

這是CalendarDatabaseHelper.java的一些源代碼,顯示Event._ID是PK:

   db.execSQL("CREATE TABLE Events (" +
            "_id INTEGER PRIMARY KEY," +
            ACCOUNT_NAME + " TEXT," +
            ACCOUNT_TYPE + " TEXT," +
            "_sync_id TEXT," +
            "_sync_version TEXT," +
            "_sync_time TEXT," +            // UTC
            "_sync_local_id INTEGER," +
            "_sync_dirty INTEGER," +
            "_sync_mark INTEGER," + // To filter out new rows
            "calendar_id INTEGER NOT NULL," +
            "htmlUri TEXT," +
            "title TEXT," +
            "eventLocation TEXT," +
            "description TEXT," +
            "eventStatus INTEGER," +
            "selfAttendeeStatus INTEGER NOT NULL DEFAULT 0," +
            "commentsUri TEXT," +
            "dtstart INTEGER," +               // millis since epoch
            "dtend INTEGER," +                 // millis since epoch
            "eventTimezone TEXT," +         // timezone for event
            "duration TEXT," +
            "allDay INTEGER NOT NULL DEFAULT 0," +
            "visibility INTEGER NOT NULL DEFAULT 0," +
            "transparency INTEGER NOT NULL DEFAULT 0," +
            "hasAlarm INTEGER NOT NULL DEFAULT 0," +
            "hasExtendedProperties INTEGER NOT NULL DEFAULT 0," +
            "rrule TEXT," +
            "rdate TEXT," +
            "exrule TEXT," +
            "exdate TEXT," +
            "originalEvent TEXT," +  // _sync_id of recurring event
            "originalInstanceTime INTEGER," +  // millis since epoch
            "originalAllDay INTEGER," +
            "lastDate INTEGER," +               // millis since epoch
            "hasAttendeeData INTEGER NOT NULL DEFAULT 0," +
            "guestsCanModify INTEGER NOT NULL DEFAULT 0," +
            "guestsCanInviteOthers INTEGER NOT NULL DEFAULT 1," +
            "guestsCanSeeGuests INTEGER NOT NULL DEFAULT 1," +
            "organizer STRING," +
            "deleted INTEGER NOT NULL DEFAULT 0," +
            "dtstart2 INTEGER," + //millis since epoch, allDay events in local timezone
            "dtend2 INTEGER," + //millis since epoch, allDay events in local timezone
            "eventTimezone2 TEXT," + //timezone for event with allDay events in local timezone
            "syncAdapterData TEXT" + //available for use by sync adapters
            ");");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM