gpt4 book ai didi

Android 日历 Intent 定制

转载 作者:行者123 更新时间:2023-11-29 14:54:26 24 4
gpt4 key购买 nike

我正在为将事件添加到用户日历的程序的另一个区域制作后端函数。基本上有人会从 GUI 中的选项中挑选一个事件,我想在日历上设置一个与该选择相匹配的事件。使我的工作更清楚的代码:

    java.sql.Timestamp tsStart = java.sql.Timestamp.valueOf(year + "-" + month + "-" + day + " " + startHour + ":" + startMinute + ":00");
java.sql.Timestamp tsEnd = java.sql.Timestamp.valueOf(year + "-" + month + "-" + day + " " + endHour + ":" + endMinute + ":00");

long startTime = tsStart.getTime();
long endTime = tsEnd.getTime();

Intent intent = new Intent(Intent.ACTION_EDIT);
intent.setType("vnd.android.cursor.item/event");
intent.putExtra("beginTime", startTime);
intent.putExtra("allDay", false);
intent.putExtra("rrule", "FREQ=WEEKLY;COUNT="+numWeeks);
intent.putExtra("endTime", endTime);
intent.putExtra("title", title);
intent.putExtra("description", description);
intent.putExtra("eventLocation", location);
startActivity(intent);

我一直在使用 intent 来做这件事,但有一些额外的东西我不想拥有:1. 当 Intent 启动时,它从 What 字段的文本条目开始。我已经自动填写了所有这些字段,所以用户不需要做任何事情,当它像这样启动时,键盘会占用很多空间并且看起来很乱。有什么办法可以将焦点设置为不在文本框中或伪造后退按钮按下吗?2、是否可以让intent的某些部分不显示?我认为没有必要问时区,不需要全天检查(因为我告诉它开始和结束时间),不需要客人,宁愿隐藏重复因为它是定制的并且可能会混淆最终用户看到,我不想提醒,它会自动生成一个 10 分钟。-> 是否可以隐藏任何/所有这些项目?3. 有没有可能让这个从不显示给用户?我喜欢它允许用户选择要使用的日历这一事实,但我对使用他们的默认设置很好,因为大多数人将他们的手机与他们的其他帐户相关联,而手机日历是我的主要关注点。如果我可以让 10 分钟提醒消失,我会让它永远不会显示给用户,并让它按照我的指示填充他们的日历。

感谢任何能提供帮助的人。我一直在 Android Developers 阅读 Intent 、日历和任何我能想到的东西,但我遇到了找不到这些答案的障碍。这让我想起了,是否有所有有效 putExtra 的列表? Android 开发者页面非常适合列出所有方法等,但除了找到一些示异常(exception),我不知道我可以在 putExtra 中放入什么作为有效参数。

最佳答案

当您发送向日历添加事件的 Intent 时,您将启动日历 Activity 。 Intent 只是发送给系统的消息;任何可以处理 Intent 的 Activity 都可以自由地“说出来”。如果有多个 Activity 的 Intent 过滤器与 Intent 匹配,用户会看到一个“消歧”屏幕,允许他或她选择要使用的应用程序。对于大多数 Intent,MIME 类型决定了显示的应用程序。如果需要,您可以编写自己的 Activity 来处理事件。 Activity 的 Intent 过滤器必须与日历的相匹配,我不建议这样做,因为您正在注册自己处理每一个试图向日历添加内容的 Intent !

您可以选择向日历提供程序(实际上是访问提供程序的日历应用程序)发送 Intent ,或者使用带有日历提供程序的 ContentResolver API 自行插入数据。

您可能会考虑后一种做法,并提供您自己的 UI 而不是使用日历 Activity ,但我建议您在添加重复发生的事件时要谨慎,因为将它们正确处理是很棘手的。一般来说,开发人员应该使用日历 Activity 来允许用户添加事件。

如果您使用 Intent 启动日历“插入事件” Activity ,则您无法控制其 UI。为方便起见,Calendar Activity 将使用您发送的 Extras 填充 UI。如果您不发送 Extra,该 Activity 将使用默认值填充该字段或将其留空。我不确定是否如此,但这是标准做法。

开发人员在开发应用时经常会忽略开发人员指南。看一眼 http://developer.android.com/guide/topics/providers/calendar-provider.html#intents ,其中详细描述了 Calendar Provider。此页面列出了所有可用的 Extras,告诉您如何使用 ContentResolver() 过程来插入事件,并详细说明了如何使用 Intents。

目前,我认为应用程序没有标准的方法来公开它处理的 Intent 的结构,但是对于出现在设备上的内置或 bundle 应用程序,您总是可以问在这里了解更多信息。请记住,有些应用程序与平台 bundle 在一起,但其他应用程序(例如 Google map )是独立的。它们可能具有公共(public) Intent/API,但您需要注意它们可能不适用于特定用户的设备。

关于Android 日历 Intent 定制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9651950/

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