Android上的日历应用可以合并多个单独的日历:本地电话日历,Google日历等.
如何在Android手机中添加新的此类日历?我希望动态生成该日历中的事件,而无需访问Google等任何在线资源.
编辑:我想支持Android 1.5和2.3.4的手机.我可能有一天会得到更新到4.0的新手机,但谁知道什么时候会...
har*_*sel 14
我刚刚使用ICS的新API添加了一个日历.Stefan的回答有所帮助,但是为了能够写入所有列,您必须将操作作为同步适配器.您可以使用CalendarContract.ACCOUNT_TYPE_LOCAL从普通应用中执行此操作.以下代码应适用于ICS.也许某些列值不对.查看CalendarContract.Calendars的文档.不幸的是,对于较旧的Android版本,我无法帮助您,但CalendarContract仅用于某些常量字符串值.也许这些也适用于旧版本.
Uri calUri = CalendarContract.Calendars.CONTENT_URI;
ContentValues cv = new ContentValues();
cv.put(CalendarContract.Calendars.ACCOUNT_NAME, yourAccountName);
cv.put(CalendarContract.Calendars.ACCOUNT_TYPE, CalendarContract.ACCOUNT_TYPE_LOCAL);
cv.put(CalendarContract.Calendars.NAME, yourInternalName);
cv.put(CalendarContract.Calendars.CALENDAR_DISPLAY_NAME, yourDisplayName);
cv.put(CalendarContract.Calendars.CALENDAR_COLOR, yourColor);
cv.put(CalendarContract.Calendars.CALENDAR_ACCESS_LEVEL, CalendarContract.Calendars.CAL_ACCESS_OWNER);
cv.put(CalendarContract.Calendars.OWNER_ACCOUNT, true);
cv.put(CalendarContract.Calendars.VISIBLE, 1);
cv.put(CalendarContract.Calendars.SYNC_EVENTS, 1);
calUri = calUri.buildUpon()
.appendQueryParameter(CalendarContract.CALLER_IS_SYNCADAPTER, "true")
.appendQueryParameter(CalendarContract.Calendars.ACCOUNT_NAME, ACCOUNT_NAME)
.appendQueryParameter(CalendarContract.Calendars.ACCOUNT_TYPE, CalendarContract.ACCOUNT_TYPE_LOCAL)
.build();
Uri result = this.getContentResolver().insert(calUri, cv);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10495 次 |
| 最近记录: |