2014-12-12 5 views
4

У меня есть приложение, которое показывает специальные дни. Я хочу интегрировать их в календарь.Android - Создать пользовательский календарь с событием

События статичны, они не меняются, поэтому мне не нужно обновлять календарь очень часто.

Сначала я подумал о создании локального календаря и добавлении событий, но новые версии для Android (начиная с версии 2.3?), Похоже, не поддерживают это; для реализации я должен был бы создать Календарного провайдера.

Я видел этот проект на github: https://github.com/dschuermann/birthday-adapter. Это очень сложно; его основное использование - добавление дней рождения контактов в новый календарь.

Существует много кода, большая часть которого я не думаю, что мне нужно. Нужно ли мне зарегистрироваться в менеджере аккаунта Android для интеграции с Календарем? Мне просто нужен новый календарь с моим событием ...

Было бы проще взять календарь пользователя по умолчанию и добавить все события там? Я мог бы добавить некоторые идентификаторы в описание, чтобы иметь возможность удалять события, если пользователь их не хочет.

Любые советы, учебные пособия или дальнейшие чтения оценены.

Metin Kale

ответ

3

Вы можете создавать события в календаре устройства через Intent. Я думаю, это может быть полезно для вас.

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

0

В ответ, как получить контакты и дни рождения. Android Applicaiton - How to get birthday of a contact

и эта библиотека предложит вам мощный и гибкий график, так что вы можете использовать https://github.com/roomorama/Caldroid

+0

1) Мне не нужна контактная часть проекта там, мне просто нужна интеграция календаря с моими данными. 2) Мне не нужен Caldroid или что-то в этом роде, я не хочу интегрировать свои события в Календарь для Android – metinkale38

Смежные вопросы