小编Ben*_*ner的帖子

Android添加新日历

我已经检查了从Android应用程序中创建新日历的方法.我见过的唯一方法是在最新的api版本中使用新的Calendar API,但这只是在您使用时似乎有效CalendarContract.ACCOUNT_TYPE_LOCAL.它不会让您创建附加到用户Google帐户的日历,与之同步Google Calendar.它不会出现在Google日历的在线日历列表中.

values.put(CalendarContract.Calendars.ACCOUNT_TYPE, 
    CalendarContract.ACCOUNT_TYPE_LOCAL);
Run Code Online (Sandbox Code Playgroud)

我已尝试使用帐户中的帐户类型,但这不起作用.但它似乎没有产生任何错误.结果很好.

values.put(CalendarContract.Calendars.ACCOUNT_TYPE, accountType);
Run Code Online (Sandbox Code Playgroud)

以下是使用Calendar APIand SYNCADAPTER(帐户类型已注释掉)添加新本地日历的完整代码.有谁知道我想做的事情是否可能?

AccountManager manager = AccountManager.get(context);
Account[] accounts = manager.getAccountsByType("com.google");

String accountName = "";
String accountType = "";

for (Account account : accounts) {
    accountName = account.name;
    accountType = account.type;
    break;
}

ContentResolver cr = context.getContentResolver();
ContentValues values = new ContentValues();

values.put(CalendarContract.Calendars.ACCOUNT_NAME, accountName);
//values.put(CalendarContract.Calendars.ACCOUNT_TYPE, accountType);
values.put(CalendarContract.Calendars.ACCOUNT_TYPE, CalendarContract.ACCOUNT_TYPE_LOCAL);
values.put(CalendarContract.Calendars.NAME, DaysSince.CAL_NAME);
values.put(CalendarContract.Calendars.CALENDAR_DISPLAY_NAME, DaysSince.CAL_NAME);
values.put(CalendarContract.Calendars.SYNC_EVENTS, 1);
values.put(CalendarContract.Calendars.VISIBLE, 1);
values.put(CalendarContract.Calendars.CALENDAR_ACCESS_LEVEL, CalendarContract.Calendars.CAL_ACCESS_OWNER);
values.put(CalendarContract.Calendars.OWNER_ACCOUNT, accountName);
values.put(CalendarContract.Calendars.DIRTY, 1);
values.put(CalendarContract.Calendars.CALENDAR_TIME_ZONE, …
Run Code Online (Sandbox Code Playgroud)

api android calendar

10
推荐指数
1
解决办法
2943
查看次数

标签 统计

android ×1

api ×1

calendar ×1