安卓插入系统日历重新开机或者隔夜日历账号还有事件被清除? 看这边

       最近在实现 “插入系统日历事件提醒” 这个功能时,遇到重开机或者隔夜后,插入系统事件就被清除了,折腾了一下,终于找到问题出在哪里了,记录一下!!!

      简单的插入系统事件这里就不提了,不然就偏题啦,贴个官方教程吧

https://developer.android.com/guide/topics/providers/calendar-provider

重点:

   在插入日历事件时,官方推荐设置的列如下

会出现这个问题主要是

这两条字段,官方介绍如下

最后修改

 

ContentValues value = new ContentValues();
value.put(CalendarContract.Calendars.NAME, CALENDARS_NAME);
value.put(CalendarContract.Calendars.ACCOUNT_NAME, CALENDARS_ACCOUNT_NAME);
value.put(CalendarContract.Calendars.ACCOUNT_TYPE, CALENDARS_ACCOUNT_TYPE);
value.put(CalendarContract.Calendars.CALENDAR_DISPLAY_NAME, CALENDARS_DISPLAY_NAME);
value.put(CalendarContract.Calendars.VISIBLE, 1);
value.put(CalendarContract.Calendars.CALENDAR_COLOR, Color.rgb(238,76,73));
value.put(CalendarContract.Calendars.CALENDAR_ACCESS_LEVEL, CalendarContract.Calendars.CAL_ACCESS_ROOT);
value.put(CalendarContract.Calendars.SYNC_EVENTS, 1);
value.put(CalendarContract.Calendars.CALENDAR_TIME_ZONE, timeZone.getID());
value.put(CalendarContract.Calendars.OWNER_ACCOUNT, CALENDARS_ACCOUNT_NAME);
value.put(CalendarContract.Calendars.CAN_ORGANIZER_RESPOND, 1);
value.put(CalendarContract.SyncState.ACCOUNT_NAME,CALENDARS_ACCOUNT_NAME);//添加这个设置
value.put(CalendarContract.SyncState.ACCOUNT_TYPE,CalendarContract.ACCOUNT_TYPE_LOCAL);//添加这个设置
value.put(CalendarContract.Calendars.IS_PRIMARY,1);

Uri calendarUri = CalendarContract.Calendars.CONTENT_URI;
calendarUri = calendarUri.buildUpon()
        .appendQueryParameter(CalendarContract.CALLER_IS_SYNCADAPTER, "true")
        .appendQueryParameter(CalendarContract.Calendars.ACCOUNT_NAME, CALENDARS_ACCOUNT_NAME)
        .appendQueryParameter(CalendarContract.Calendars.ACCOUNT_TYPE, CALENDARS_ACCOUNT_TYPE)
        .build();

Uri result = mcontext.getContentResolver().insert(calendarUri, value);
long id = result == null ? -1 : ContentUris.parseId(result);

return id;

大功告成!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值