use*_*310 1 events android calendar
我有以下代码可行.
但我不希望确认出现
希望它自动在日历上输入活动
有人有个建议
calIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_SINGLE_TOP
| Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_NO_HISTORY
| Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
calIntent.setType("vnd.android.cursor.item/event");
calIntent.putExtra(Events.TITLE, "SMS: "+contact);
calIntent.putExtra(Events.EVENT_LOCATION, "");
calIntent.putExtra(Events.DESCRIPTION, msgBody);
calIntent.putExtra(Events.HAS_ALARM, 0);
calIntent.putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY, false);
calIntent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, System.currentTimeMillis());
calIntent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, System.currentTimeMillis()+1);
context.startActivity(calIntent);
Run Code Online (Sandbox Code Playgroud)
通过使用意图,您可以将控制权交给日历应用程序以创建实际事件.日历应用程序确定如何处理意图,在这种情况下通过抛出确认弹出窗口.
虽然使用意图是与用户日历交互的推荐方式,但您也可以直接使用意图.这将切断对日历应用程序的调用并避免弹出窗口.缺点是您需要请求日历权限才能执行此操作.
以下是日历提供程序教程页面中的示例:
long calID = 3;
long startMillis = 0;
long endMillis = 0;
Calendar beginTime = Calendar.getInstance();
beginTime.set(2012, 9, 14, 7, 30);
startMillis = beginTime.getTimeInMillis();
Calendar endTime = Calendar.getInstance();
endTime.set(2012, 9, 14, 8, 45);
endMillis = endTime.getTimeInMillis();
...
ContentResolver cr = getContentResolver();
ContentValues values = new ContentValues();
values.put(Events.DTSTART, startMillis);
values.put(Events.DTEND, endMillis);
values.put(Events.TITLE, "Jazzercise");
values.put(Events.DESCRIPTION, "Group workout");
values.put(Events.CALENDAR_ID, calID);
values.put(Events.EVENT_TIMEZONE, "America/Los_Angeles");
Uri uri = cr.insert(Events.CONTENT_URI, values);
// get the event ID that is the last element in the Uri
long eventID = Long.parseLong(uri.getLastPathSegment());
//
// ... do something with event ID
//
//
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2589 次 |
| 最近记录: |