private void setEvent(){
long startMilis = 0;
int mCalId = 1;
long endMilis = 0;
Calendar beginTime = Calendar.getInstance();
beginTime.set(2013, 1, 29, 9, 10);
startMilis = beginTime.getTimeInMillis();
Calendar endTime = Calendar.getInstance();
endTime.set(2013, 1, 30, 10,10);
endMilis = endTime.getTimeInMillis();
ContentResolver cr = getContentResolver();
ContentValues values = new ContentValues();
values.put(Events.CALENDAR_ID, mCalId);
values.put(Events.DTSTART, startMilis);
values.put(Events.DTEND, endMilis);
values.put(Events.TITLE,"Special Event");
values.put(Events.DESCRIPTION, "Group Activity");
values.put(Events.EVENT_TIMEZONE, "America/Los_Angeles");
Uri uri = cr.insert(Events.CONTENT_URI, values);
Toast.makeText(this, "Event Added", Toast.LENGTH_LONG).show();
}
這是我的代碼片段,我想在Android月曆中添加事件.代碼工作正常.
但是在裝置上測試時,指定的事件實際上并沒有被添加,也沒有出現在calendar.Code完全沒有錯誤,我提供了必要的權限.
有人可以告訴我我在哪裡做錯了.
解決方法:
如果沒有錯誤,但事件未出現在月曆中,
我懷疑罪魁禍首是mCalId = 1.
裝置可以有多個月曆.不能保證id == 1的那個是主要的那個(即使你使用了主要的那個,使用者也可能在多個不同的月曆中有事件 – 例如個人和工作).
是以,這取決于你想要做什麼.你應該:
>使用主月曆(具有IS_PRIMARY的月曆,但請參見上面的警告),或
>讓使用者首先選擇一個月曆(僅當查詢Calendars table時找到多個月曆),然後再使用該calendar_id.
标簽:android,events,android-syncadapter,android-calendar
來源: https://codeday.me/bug/20190629/1329205.html