在Android 4.0中添加日历和事件
我想在android 4.0及以上版本的设备中添加日历事件。 目前,我正在使用以下代码添加事件在Android 4.0中添加日历和事件,android,calendar,uri,Android,Calendar,Uri,我想在android 4.0及以上版本的设备中添加日历事件。 目前,我正在使用以下代码添加事件 if (android.os.Build.VERSION.SDK_INT <= 7 ) { Uri calendars = Uri.parse("content://calendar/calendars"); Cursor managedCursor = man
if (android.os.Build.VERSION.SDK_INT <= 7 )
{
Uri calendars = Uri.parse("content://calendar/calendars");
Cursor managedCursor = managedQuery(calendars, projection, null, null, null);
if (managedCursor.moveToFirst())
{
String calName;
String calId;
int nameColumn = managedCursor.getColumnIndex("name");
int idColumn = managedCursor.getColumnIndex("_id");
do
{
calName = managedCursor.getString(nameColumn);
calId = managedCursor.getString(idColumn);
Log.e("Calendar Id : ",""+calId+" : "+calName);
}
while (managedCursor.moveToNext());
if(calId != null)
{
try
{
Log.e("Calendar Id : ",""+calId+" : "+calName);
ContentValues event = new ContentValues();
event.put("calendar_id", calId);
event.put("title", summary);
event.put("description", summary);
event.put("eventLocation", "");
event.put("dtstart", startTime);
event.put("dtend", endTime);
event.put("allDay", allDayFlag);
event.put("eventStatus", 1);
event.put("visibility", 0);
event.put("hasAlarm", 1);
Uri eventsUri = Uri.parse("content://calendar/events");
Uri url = getContentResolver().insert(eventsUri, event);
Log.e("Event Res : ",""+url);
if(!url.equals(""))
Main.showErrorDialog(this, "Event Successfully Added ");
}
catch (Exception kwse)
{
Log.e("Exception 1 kwse ",""+kwse.toString());
}
}
}
}
else
{
Uri calendars= Uri.parse("content://com.android.calendar/calendars");
Cursor managedCursor = managedQuery(calendars, projection, null, null, null);
if (managedCursor.moveToFirst())
{
String calName;
String calId;
int nameColumn = managedCursor.getColumnIndex("name");
int idColumn = managedCursor.getColumnIndex("_id");
do
{
calName = managedCursor.getString(nameColumn);
calId = managedCursor.getString(idColumn);
Log.e("Calendar Id : ",""+calId+" : "+calName);
}
while (managedCursor.moveToNext());
if(calId != null)
{
try
{
Log.e("Calendar Id : ",""+calId+" : "+calName);
ContentValues event = new ContentValues();
event.put("calendar_id", calId);
event.put("title", summary);
event.put("description", summary);
event.put("eventLocation", "");
event.put("dtstart", startTime);
event.put("dtend", endTime);
event.put("allDay", allDayFlag);
event.put("eventStatus", 1);
event.put("visibility", 0);
event.put("hasAlarm", 1);
Uri eventsUri = Uri.parse("content://com.android.calendar/events");
Uri url = getContentResolver().insert(eventsUri, event);
Log.e("Event Res : ",""+url);
if(!url.equals(""))
Main.showErrorDialog(this, "Event Successfully Added ");
}
catch (Exception kwse)
{
Log.e("Exception 2 kwse ",""+kwse.toString());
}
}
}
}
其中对于7以上的sdk版本
我们使用
Uri calendars = Uri.parse("content://calendar/calendars");
Uri calendars= Uri.parse("content://com.android.calendar/calendars");
android 4.0也一样吗?有什么需要更改的吗?在ICS中,您必须使用公共日历API。请查看以下链接:
在ICS中,您必须使用公共日历API。请查看以下链接: 我认为Android 4.0中不存在“可见性” 及
int-nameColumn=managedCursor.getColumnIndex(“日历显示名称”)代码>
可能比
int-nameColumn=managedCursor.getColumnIndex(“名称”)代码>我认为Android 4.0中不存在“可见性”
及
int-nameColumn=managedCursor.getColumnIndex(“日历显示名称”)代码>
可能比
int-nameColumn=managedCursor.getColumnIndex(“名称”)代码>我也遇到了同样的问题及其解决方案。我的活动不是添加IC和JellyBean设备,而是为所有其他设备工作。
试试这个-
ContentValues event = new ContentValues();
int apiLevel = android.os.Build.VERSION.SDK_INT;
if(apiLevel<14)
event.put("visibility", 0);
ContentValues事件=新ContentValues();
int apiLevel=android.os.Build.VERSION.SDK\u int;
如果(apiLevel我也遇到了同样的问题及其解决方案。我的活动不是添加IC和JellyBean设备,而是为所有其他设备工作。
试试这个-
ContentValues event = new ContentValues();
int apiLevel = android.os.Build.VERSION.SDK_INT;
if(apiLevel<14)
event.put("visibility", 0);
ContentValues事件=新ContentValues();
int apiLevel=android.os.Build.VERSION.SDK\u int;
如果(高级)