1. 程式人生 > >安卓日歷同步的一些要點

安卓日歷同步的一些要點

適配 end ntp 手機 roi 標準 ref 工作 title

1)API接口

android.content.ContentProvider

android.content.ContentResolver

android.provider.CalendarContract

另外,在創建日歷賬號時(向系統的Calendars表插入一條數據)需要設置為適配器模式,具體可以查看CalendarContract幫助。

2)周期規則字符串RRULE

RRULE的具體組成可以參考RFC5545,但是需要特別指出的是,Android系統並不是百分百支持該標準,只支持基本功能的標簽(等號聯系起來的鍵值對,我管它叫標簽)。

  • 每年3月的第一個日子

FREQ=YEARLY;lNTERVAL=1;BYMONTHDAY=1;BYMONTH=3

  • 每年3月的最後一個日子

FREQ=YEARLY;lNTERVAL=1;BYMONTHDAY=-1;BYMONTH=3

  • 每月的最後一個工作日

FREQ=MONTHLY;lNTERVAL=1;BYDAY=MO,TU,WE,TH,FR;BYSETOPS=-1

  • 每月的最後一個周末

FREQ=MONTHLY;lNTERVAL=1;BYDAY=SU,SA;BYSETOPS=-1

  • 每月的第30天(如果不存在,則取最後一天,安卓手機不支持)

FREQ=MONTHLY;lNTERVAL=1;BYMONTHDAY=28,29,30;BYSETOPS=-1

  • 每兩周的周五周日(頻率為星期模式且間隔大於1時需要指定星期的第一天,周頻率的間隔數大於1時必須指定WKST

FREQ=WEEKLY;lNTERVAL=2;BYDAY=SU,FR;WKST=SU

3)周期重復日程與其例外日程的主從關系綁定

設置例外日程的3個字段的數值:
ORIGINAL_ID,周期日程的lD
ORIGINAL_INSTANCE_TIME,周期日程的實例的開始時間
ORIGINAL_ALL_DAY,周期日程的是否全天標誌


4)其他細節處理
RRULE中的截止時間延伸到當天時間的23點59分59秒999毫秒,防止個別機型上日程事件錯位出現在後一天中。

安卓日歷同步的一些要點