gpt4 book ai didi

Android 添加新日历

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:13:12 25 4
gpt4 key购买 nike

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

values.put(CalendarContract.Calendars.ACCOUNT_TYPE, 
CalendarContract.ACCOUNT_TYPE_LOCAL);

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

values.put(CalendarContract.Calendars.ACCOUNT_TYPE, accountType);

这是使用 Calendar APISYNCADAPTER(帐户类型被注释掉)添加新本地日历的完整代码。有谁知道我正在尝试做的事情是否可行?

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, TimeZone.getDefault().getID());

Uri calUri = CalendarContract.Calendars.CONTENT_URI;

calUri = calUri.buildUpon()
.appendQueryParameter(CalendarContract.CALLER_IS_SYNCADAPTER, "true")
.appendQueryParameter(CalendarContract.Calendars.ACCOUNT_NAME, accountName)
.appendQueryParameter(CalendarContract.Calendars.ACCOUNT_TYPE, accountType)
.build();

Uri result = cr.insert(calUri, values);

最佳答案

是的,你可以做到。但是因为你想创建一个与你的谷歌帐户链接的日历,你需要谷歌日历 API(没有找到一个单一的解决方案来使用 Android 日历提供程序来完成这个)。检查以下链接:

一定要检查他们的 API 浏览器。用于创建新日历的简单HTTP 请求:

POST https://www.googleapis.com/calendar/v3/calendars?key={YOUR_API_KEY}

{
"summary": "My new google calendar"
}

这是响应:

{
"kind": "calendar#calendar",
"etag": "__________etag_val_________",
"id": "______id_goes_here______@group.calendar.google.com",
"summary": "My new google calendar"
}

之后,您应该能够使用日历提供程序从您的 Android 应用管理此日历(同步后)。

关于Android 添加新日历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12566736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com