最近在实现 “插入系统日历事件提醒” 这个功能时,遇到重开机或者隔夜后,插入系统事件就被清除了,折腾了一下,终于找到问题出在哪里了,记录一下!!!
简单的插入系统事件这里就不提了,不然就偏题啦,贴个官方教程吧
https://developer.android.com/guide/topics/providers/calendar-provider
问题一:安卓插入系统日历重新开机或者隔夜日历账号还有事件
重点是创建日历id时,添加修改这两个配置即可
private static String CALENDARS_ACCOUNT_NAME = CalendarContract.ACCOUNT_TYPE_LOCAL;
private static String CALENDARS_ACCOUNT_TYPE = CalendarContract.ACCOUNT_TYPE_LOCAL;
value.put(CalendarContract.Calendars.ACCOUNT_NAME, CALENDARS_ACCOUNT_NAME);
value.put(CalendarContract.Calendars.ACCOUNT_TYPE, CALENDARS_ACCOUNT_TYPE);
private static String CALENDARS_ACCOUNT_NAME = CalendarContract.ACCOUNT_TYPE_LOCAL;
private static String CALENDARS_ACCOUNT_TYPE = CalendarContract.ACCOUNT_TYPE_LOCAL;
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;
问题二:OPPO手机无法设置提醒 OPPO手机设置提醒无效
直接上截图

没错就是这个15的问题,oppo手机必须按照他规定的提醒时间来,如5 10 15
总结多看官方文档,百度 google上面搜索到的都是小道消息
————————————————
版权声明:本文为CSDN博主「四处碰壁的小黄」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_28741899/article/details/90262954