gpt4 book ai didi

android - 如何在 Android 中为用户的日历创建或添加不可编辑的事件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:46:21 26 4
gpt4 key购买 nike

我查看了这些用于在 Android 中向 Google 日历添加 Activity 的链接,我可以添加 Activity ,但是如何让用户不可编辑 Activity ?

How to add calendar events in Android?

https://developer.android.com/guide/topics/providers/calendar-provider.html#add-event

添加事件的代码。

String eventTitle = "Jazzercise";
long calID = 3;
long startMillis = 0;
long endMillis = 0;
Calendar beginTime = Calendar.getInstance();
beginTime.set(2018, 2, 18, 6, 00);
startMillis = beginTime.getTimeInMillis();
Calendar endTime = Calendar.getInstance();
endTime.set(2018, 2, 18, 8, 00);
endMillis = endTime.getTimeInMillis();

ContentResolver cr = getContentResolver();
ContentValues values = new ContentValues();
values.put(CalendarContract.Events.DTSTART, startMillis);
values.put(CalendarContract.Events.DTEND, endMillis);
values.put(CalendarContract.Events.TITLE, "Jazzercise");
values.put(CalendarContract.Events.DESCRIPTION, "Group workout");
values.put(CalendarContract.Events.CALENDAR_ID, calID);
values.put(CalendarContract.Events.EVENT_TIMEZONE, "America/Los_Angeles");
values.put(CalendarContract.Events.ORGANIZER, "google_calendar@gmail.com");

if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_CALENDAR) == PackageManager.PERMISSION_GRANTED) {
Uri uri = cr.insert(CalendarContract.Events.CONTENT_URI, values);
long eventID = Long.parseLong(uri.getLastPathSegment());
Log.i("Calendar", "Event Created, the event id is: " + eventID);
Snackbar.make(view, "Jazzercise event added!", Snackbar.LENGTH_SHORT).show();
} else {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_CALENDAR}, MY_PERMISSIONS_REQUEST_WRITE_CALENDAR);
}

上面代码中的这一行实际上会在事件创建后的一小段时间内让用户无法编辑该事件,在那之后用户将能够编辑事件。

values.put(CalendarContract.Events.ORGANIZER, "google_calendar@gmail.com");

例如,我在google flight上订了一个航类后,这个航类的一个 Activity 会自动添加到我的google calendar中,但是我不能编辑 Activity 的详细信息,比如 Activity 名称、时间等,我只能删除如果我愿意的话。所以,很明显可以在用户的​​谷歌日历中创建/添加一个事件,但我只是不知道该怎么做。有谁知道如何做到这一点?

Plus 用户不应选择接受或拒绝该事件。唯一的选择是在将其添加到用户的日历后将其删除。

最佳答案

当您对用户的谷歌日历帐户进行身份验证时,您将以用户身份登录。当你创建一个事件时,它就像用户自己创建事件一样,然后他们就是事件的所有者。您不能创建以其他人为所有者的 Activity 。

您应该考虑将 Activity 添加到您自己的日历中并邀请这些人参加 Activity ,然后他们可以选择自己将 Activity 添加到他们的日历中。他们将是您 Activity 的客人而不是所有者,然后将无法编辑 Activity 。

您可以在创建 Activity 后尝试更新 Activity ,将自己添加为所有者,并更新将他们设置为 guest 的用户。但是,我不确定是否可以将某人设置为他们个人日历中 Activity 的 guest 。

关于android - 如何在 Android 中为用户的日历创建或添加不可编辑的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48954741/

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