2014-12-12 3 views
4

나는 특별한 날을 보여주는 앱을 가지고 있습니다. 캘린더에 그들을 통합하고 싶습니다.Android - 이벤트로 맞춤 캘린더 만들기

이벤트는 정적이며 변경되지 않으므로 캘린더를 자주 업데이트 할 필요가 없습니다.

나는 처음으로 로컬 캘린더를 만들고 이벤트를 추가 할 생각을했지만 새로운 안드로이드 버전 (2.3? 이후)은이를 지원하지 않는 것처럼 보입니다. 구현하려면 Calendar Provider를 만들어야합니다.

이 프로젝트는 github : https://github.com/dschuermann/birthday-adapter에서 보았습니다. 그것은 매우 복잡합니다. 주된 용도는 새 캘린더에 연락처의 생일을 추가하는 것입니다.

내가 많이 필요하다고 생각하지 않는 많은 코드가 있습니다. 캘린더 제공자를 통합하려면 안드로이드의 계정 관리자에게 정말로 등록해야합니까? 내 일정으로 새 캘린더가 필요합니다 ...

사용자의 기본 캘린더를 가져 와서 모든 이벤트를 쉽게 추가 할 수 있습니까? 설명에 식별자를 추가하여 사용자가 이벤트를 원하지 않으면 이벤트를 제거 할 수 있습니다.

모든 팁, 자습서 또는 추가 읽기가 부탁드립니다.

텍스트 및 케일

답변

3

당신은 의도를 통해 장치 캘린더에서 이벤트를 만들 수 있습니다. 나는 그것이 당신에게 유용 할 수 있다고 생각합니다.

public long addEventToCalender(ContentResolver cr, String title, String addInfo, String place, int status, 
             long startDate, boolean isRemind,long endDate) { 
    String eventUriStr = "content://com.android.calendar/events"; 
    ContentValues event = new ContentValues(); 
    // id, We need to choose from our mobile for primary its 1 
    event.put("calendar_id", 1); 
    event.put("title", title); 
    event.put("description", addInfo); 
    event.put("eventLocation", place); 
    event.put("eventTimezone", "UTC/GMT +2:00"); 

    // For next 1hr 
    event.put("dtstart", startDate); 
    event.put("dtend", endDate); 
    //If it is bithday alarm or such kind (which should remind me for whole day) 0 for false, 1 for true 
    // values.put("allDay", 1); 
    // event.put("eventStatus", status); 
    event.put("hasAlarm", 1); 

    Uri eventUri = cr.insert(Uri.parse(eventUriStr), event); 
    long eventID = Long.parseLong(eventUri.getLastPathSegment()); 

    if (isRemind) { 
     String reminderUriString = "content://com.android.calendar/reminders"; 
     ContentValues reminderValues = new ContentValues(); 
     reminderValues.put("event_id", eventID); 
     // Default value of the system. Minutes is a integer 
     reminderValues.put("minutes", 5); 
     // Alert Methods: Default(0), Alert(1), Email(2), SMS(3) 
     reminderValues.put("method", 1); 
     cr.insert(Uri.parse(reminderUriString), reminderValues); //Uri reminderUri = 
    } 
    return eventID; 
} 

자세한 내용은 어떻게 연락처와 생일을 얻기 위해이 회신에서 http://developer.android.com/reference/java/util/Calendar.html

+0

사용할 수 있도록이 라이브러리는 당신에게 강력하고 유연한 스케줄을 제공 할 것입니다,하지만 난 냈다 코드에 대해 한 번 ... 네에서 약 30 이벤트를 넣어야 할 ... – metinkale38