我想在我的应用程序中点击按钮打开android原生日历应用程序。我在网上搜索过,我找到了以下代码:
Intent intent = new Intent(Intent.ACTION_EDIT);
intent.setType("vnd.android.cursor.item/event");
intent.putExtra("title", "Some title");
intent.putExtra("description", "Some description");
intent.putExtra("beginTime", eventStartInMillis);
intent.putExtra("endTime", eventEndInMillis);
startActivity(intent);
有人可以向我解释一下这段代码吗?
答案 0 :(得分:0)
回答有关代码执行操作的问题
Intent intent = new Intent(Intent.ACTION_EDIT);
创建与Intent
操作ACTION_EDIT
对应的新Intent
。这是一个通用的Intent Action,这意味着仅仅这不足以自动启动权限Activity
。这就是我们接下来要做的就是设置Intent
的MIME类型。由于我们要启动日历编辑器,因此我们将类型设置为vnd.android.cursor.item/event
:
intent.setType("vnd.android.cursor.item/event");
这与清单条目相对应。请注意data
节点(显示的Jellybean版本清单)。
<intent-filter>
<action android:name="android.intent.action.EDIT" />
<action android:name="android.intent.action.INSERT" />
<category android:name="android.intent.category.DEFAULT" />
<!-- mime type -->
<data android:mimeType="vnd.android.cursor.item/event" />
</intent-filter>
putExtra()
调用允许您指定事件特征,例如事件标题,开始和结束时间等。
然后我们开始活动。结果是这样的:
你去了,你已经打开Android日历应用程序来添加活动!
警告:里程可能会有所不同
但是如果你不想打电话给事件编辑器怎么办?如果您只想打开Android日历应用,则可以使用PackageManager#getLaunchIntentForPackage()
(前提是:包名称不会更改,安装了Android日历,并且您可以获得对{{}的引用1}})。
来自活动的示例(使用MainActivity.this突出显示我从活动中启动的事实):
PackageManager