Android写手机本地日历,如何将新的手机日历添加到Android?

我刚刚设法使用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);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值