访问默认日历ID

时间:2013-02-14 05:35:37

标签: android android-calendar android-event

我正在开发一个在日历中设置事件和提醒的应用程序。 我用它的代码如下。

private void addReminder(int statrYear, int startMonth, int startDay, int startHour, int startMinut, String title){
    Calendar beginTime = Calendar.getInstance();
    beginTime.set(statrYear, startMonth, startDay, startHour, startMinut);
    long startMillis = beginTime.getTimeInMillis();

    // String to access default google calendar of device for Event setting.
    String eventUriString = "content://com.android.calendar/events";


    ContentValues eventValues = new ContentValues();
    eventValues.put(Events.CALENDAR_ID, 1);
    eventValues.put(Events.TITLE, title);
    eventValues.put(Events.DESCRIPTION, "Discription");
    eventValues.put(Events.EVENT_TIMEZONE, "India");
    eventValues.put(Events.DTSTART, startMillis);
    eventValues.put("eventStatus", 1);
    eventValues.put("visibility", 3);
    eventValues.put("transparency", 0);
    eventValues.put(Events.HAS_ALARM, 1);

    // Set Event in calendar.
    Uri eventUri = getContentResolver().insert(Uri.parse(eventUriString), eventValues);
    // Getting ID of event in Long.
    long eventID = Long.parseLong(eventUri.getLastPathSegment());

    /***************** Event: Reminder(with alert) Adding reminder to event *******************/
    // String to access default google calendar of device for reminder setting.
    String reminderUriString = "content://com.android.calendar/reminders";      
    ContentValues reminderValues = new ContentValues();

    reminderValues.put("event_id", eventID);
    reminderValues.put("minutes", 1);
    reminderValues.put("method", 1);        

    //Setting reminder in calendar on Event.
    Uri reminderUri = getContentResolver().insert(Uri.parse(reminderUriString), reminderValues);
}

现在这段代码可以正常使用“Samsung Galaxy S2”和“Sony Xperia”以外的其他设备添加提醒。

我无法设置提醒,可能是因为我无法获得设备的日历。 所以我认为我必须在我的应用程序中获取设备的默认日历ID。这样我就可以在每台设备上设置提醒。

请建议我,我是正确的方式或由于哪个提醒没有设置在“索尼Xperia”有任何其他问题。我在“三星Galaxy S2”和一些“三星和LG和索尼Xperia”设备上测试了这段代码。

请建议我该怎么做。

谢谢

1 个答案:

答案 0 :(得分:3)

我认为日历ID被分配给从1开始的日历。因此,如果存在,则内置的默认日历将具有id 1,否则用户必须在存在id = 1