如何使用意图查看日历数据?

时间:2012-03-21 05:18:41

标签: android android-intent calendar

我制作了这段代码:

long eventID = 208;
Uri uri = ContentUris.withAppendedId(Events.CONTENT_URI, eventID);
Intent intent = new Intent(Intent.ACTION_VIEW)
   .setData(uri);
startActivity(intent);

我确保EventID是正确的,并且视图中显示的事件标题是正确的。

问题是事件时间不正确,如:1970-1-1 8:00。

为什么呢?有人可以帮忙吗?感谢。

3 个答案:

答案 0 :(得分:4)

你必须添加事件开始&结束意图的额外数据:

intent.putExtra("beginTime", beginMilliTS);
intent.putExtra("endTime", endMilliTS);

我通过使用事件实例的“begin”和“end”字段中的值来实现此功能。 这也适用于事件中的“dtstart”和“dtend”字段。

答案 1 :(得分:1)

答案 2 :(得分:1)

Android 4.2.2上的

似乎仍然存在同样的问题。这是正确的行为,还是缺少一些东西?

  1. 通过Instances.query获取事件ID(Globals.sContext.getContentResolver(),proj,begin,end); proj = String [] {Instances.EVENT_ID,Instances.BEGIN,Instances.END ...};

  2. 使用偶数ID在日历应用中查看事件。

  3. 尝试使用代码(来自http://developer.android.com/guide/topics/providers/calendar-provider.html),它仍然显示1969年12月31日的'详细视图'由'意图'打开;如果点击日历“详细信息视图”中的事件,则会在“编辑事件”表单中显示当前日期。

    ...

    Uri uri = ContentUris.withAppendedId(Events.CONTENT_URI, eventID);
    
    Intent intent = new Intent(Intent.ACTION_VIEW)
    
       .setData(uri);
    
    startActivity(intent);
    

    ,即使使用:

    仍然无效
    intent.putExtra("beginTime", from);
    intent.putExtra("endTime", till);  //'from', 'till' is the mills got from the Instances.BEGIN/END fields from the query
    

    编辑: 以下代码有效。唯一不同的是使用define CalendarContract.EXTRA_EVENT_BEGIN_TIME

    Uri uri = ContentUris.withAppendedId(Events.CONTENT_URI, eventId);
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setData(uri);
    intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, from);
    intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, till);
    startActivity(intent);