2013-02-14 93 views
2

我正在处理日历中设置事件和提醒的应用程序。 我用它的代码如下。访问默认日历ID

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); 
} 

下面这段代码是工作的罚款对“三星Galaxy S2”和除“索尼XPERIA”其他设备添加提醒。

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

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

请建议我该怎么做。

谢谢

回答

3

我觉得日历ID分配给从1开始的日历所以内置的默认日历如果存在存在日历前将有ID为1,否则日历已经由用户添加id = 1