0

我正在尝试向日历添加一个新事件(最小 sdk 版本为 2.2)。
那是我到目前为止的代码:

ContentValues event = new ContentValues();

event.put("calendar_id", 2);
event.put("title", "mytitle");
event.put("description", "desc");
event.put("eventLocation", "loc");
event.put("eventTimezone", Calendar.getInstance().getTimeZone().getDisplayName());

long startTime = System.currentTimeMillis() + 1000 * 60 * 60;
Long duration = 1000L * 60 * 30;

event.put("dtstart", startTime);
event.put("duration", duration);

Uri eventsUri = Uri.parse("content://com.android.calendar/events");
Uri insertedUri = getContentResolver().insert(eventsUri, event);

insertedUri始终为空。
我也可以在我的 logcat 中看到该行:

Failed to find provider info for calendar  

任何人都可以帮助我吗?
谢谢。

4

3 回答 3

0

Android中没有默认日历。所以,它总是找不到提供者。这就是为什么之前没有公共 API 的原因。您将必须安装一个日历应用程序,例如谷歌日历。对于其他第三方应用程序,请通过他们的 api。

于 2012-04-15T11:08:59.580 回答
0

我在这里找到了答案。
谢谢

于 2012-04-16T09:16:03.200 回答
0

你也可以试试这个

public static void addToCalendar(Context ctx, final String title,
            final long dtstart, final long dtend, final String location) {

        Intent intent = new Intent(Intent.ACTION_EDIT);
        intent.setType("vnd.android.cursor.item/event");
        intent.putExtra("beginTime", dtstart);
        intent.putExtra("allDay", false);
        intent.putExtra("rrule", "FREQ=YEARLY");
        intent.putExtra("endTime", dtend);
        intent.putExtra("title", title);
        intent.putExtra("eventLocation", location);
        ctx.startActivity(intent);
    }
于 2012-04-16T09:28:50.420 回答