为什么.event.set("fieldName", ObjectValue)在Google Calendar API android中不存储任何数据?

问题描述 投票:0回答:1

我成功地intergarted谷歌日历API。我可以做CRUD。但现在由于一些要求,我想发送一些独特的ID到每个事件,而创建从Android应用程序。为此,我找到了一个方法,叫做 .set() 这是一个键值对。

 Event event = new Event()
                    .set("appointment_id", 55475)
                    .setSummary(summary)
                    .setLocation(location)
                    .setDescription(des);

但在获取时,我得到了所有数据,但除了 event.get("appointment_id")

为什么,连它也设置了。[如果我在执行插入之前,在这里做这样的工作, evetn.get("appointment_id")我得到的值,因为这是本地的,我哽咽] 。

我也是通过调试检查的。见下文。

enter image description here

但是,当我从谷歌日历中获取所有事件时,我没有得到。

List<Event> items = events.getItems();
android google-calendar-api
1个回答
0
投票

你使用的是 set 方法,但这只是覆盖了 com.google.api.client.json.GenericJson 类,我相信这只会将这个键值添加到最终的JSON中,而API将忽略它(因为它不是一个预期的字段)。

真诚的说,我不知道创建一个自定义的id有什么意义,因为日历中已经直接集成了一个。

如果你看一下 insert 方法,你可以看到有一个叫做 id:

事件的不透明标识符。当创建新的单个或重复发生的事件时,您可以指定其ID。所提供的ID必须遵循这些规则。

  • ID中允许的字符是base32hex编码中使用的字符,即小写字母a-v和数字0-9,见RFC2938的3.1.2节。

  • ID的长度必须在5到1024个字符之间。

  • 身份证必须是每个日历上唯一的

也在同样的字段描述中。

如果你没有指定一个ID,它将由服务器自动生成。

我的观点是,如果你需要为日历中的事件提供唯一的ID,有一个内置的方法可以为你创建它们。即使你需要提供你自己的ID,你也可以这样做,告知这个领域。

让我向你推荐官方指南 事件创建 其中有一个更详细的视图,你可以采取创建一个事件的选项。

也可以查看文档中的 setId 因为这是你应该使用的方法,而不是使用 set.


例如:

Event event = new Event()
                    .setId("55475") // This has to be type String
                    .setSummary(summary)
                    .setLocation(location)
                    .setDescription(des);
© www.soinside.com 2019 - 2024. All rights reserved.