仅适用于 2.2+ 版本
我使用下面的代码在日历中添加事件
if (Build.VERSION.SDK_INT >= 14) {
Calendar cal = Calendar.getInstance();
Intent intent = new Intent(Intent.ACTION_INSERT)
.setData(Events.CONTENT_URI)
/*
* .putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME,
* beginTime.getTimeInMillis())
* .putExtra(CalendarContract.EXTRA_EVENT_END_TIME,
* endTime.getTimeInMillis())
*/
.putExtra(Events.TITLE,
"A Test Event from android app by Neha ")
.
putExtra("beginTime", cal.getTimeInMillis())
.putExtra("allDay", true)
.putExtra("rrule", "FREQ=YEARLY")
.putExtra("endTime",
cal.getTimeInMillis() + 60 * 60 * 1000)
.putExtra(Events.AVAILABILITY, Events.AVAILABILITY_BUSY);
startActivity(intent);
}
else {
Calendar cal = Calendar.getInstance();
Intent intent = new Intent(Intent.ACTION_EDIT);
intent.setType("vnd.android.cursor.item/event");
intent.putExtra("beginTime", cal.getTimeInMillis());
intent.putExtra("allDay", true);
intent.putExtra("rrule", "FREQ=YEARLY");
intent.putExtra("endTime",
cal.getTimeInMillis() + 60 * 60 * 1000);
intent.putExtra("title",
"A Test Event from android app by Neha");
startActivity(intent);
}
下面是我用来编辑事件的代码
long calendarEventID = GetMaxID();
Uri uri = Uri.parse("content://com.android.calendar/events/"
+ String.valueOf(calendarEventID));
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(uri);
intent.putExtra("beginTime", startDate);
intent.putExtra("endTime", endDate);
startActivity(intent);
和 GetMaxId 为
public long GetMaxID() {
ContentResolver contentResolver = getContentResolver();
Uri local_uri;
local_uri = Uri.parse("content://com.android.calendar/events");
Cursor cursor = contentResolver.query(local_uri, new String[] {
"_id as max_id", "dtstart", "dtend" }, null, null, "_id");
cursor.moveToFirst();
long max_val = cursor.getLong(cursor.getColumnIndex("max_id"));
startDate = cursor.getLong(cursor.getColumnIndex("dtstart"));
endDate = cursor.getLong(cursor.getColumnIndex("dtend"));
return max_val + 1;
}
并将权限放入清单中
<uses-permission android:name="android.permission.WRITE_CALENDAR"></uses-permission>
<uses-permission android:name="android.permission.READ_CALENDAR"></uses-permission>
希望它也对某人有所帮助。