如何将新的手机日历添加到Android?

前端之家收集整理的这篇文章主要介绍了如何将新的手机日历添加到Android?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Android上的日历应用程序可以合并多个单独的日历:本地电话日历,Google日历等.

如何在Android手机中添加新的日历?我想动态地生成该日历中的事件,而不需要访问任何在线资源(如Google).

编辑:我想支持Android 1.5和2.3.4手机.有一天我可能会更新到4.0的新手机,但谁知道什么时候会…

解决方法

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

猜你在找的Android相关文章