Я только начинаю набирать скорость на Android, и сегодня на совещании по проекту кто-то сказал, что у Android нет собственного приложения-календаря, поэтому пользователи просто используют любое приложение-календарь, которое им нравится.
Это правда, и если да, то как программно добавить событие в календарь пользователя? Есть ли у них общий API?
Что бы это ни стоило, мы, вероятно, нацелены на Android 2.x.
Ответы:
Какой календарь?
Нет, не более, чем существует «общий API, который они все используют» для приложений календаря Windows. Существует несколько распространенных форматов данных (например, iCalendar) и интернет-протоколов (например, CalDAV), но нет общего API. Некоторые приложения календаря даже не предлагают API.
Если есть определенные приложения календаря, с которыми вы хотите интегрироваться, свяжитесь с их разработчиками и определите, предлагают ли они API. Так, например, приложение Calendar из проекта Android с открытым исходным кодом, которое цитирует Mayra, не предлагает никаких документированных и поддерживаемых API. Google даже прямо сказал разработчикам, чтобы они не использовали методы, описанные в уроке, который цитирует Майра.
Другой вариант - добавить события в соответствующий интернет-календарь. Например, лучший способ добавить события в приложение «Календарь» из проекта Android с открытым исходным кодом - добавить событие в пользовательский Календарь Google через соответствующие API-интерфейсы GData.
ОБНОВИТЬ
Android 4.0 (уровень API 14) добавил а
CalendarContract
ContentProvider
.источник
Попробуйте это в своем коде:
источник
Используйте этот API в своем коде. Это поможет вам вставить событие, событие с напоминанием и событие с встречей можно включить ... Этот API работает для платформы 2.1 и выше. Те, кто использует менее 2.1 вместо контента: // com .android.calendar / events использовать контент: // calendar / events
источник
event.put("eventTimezone", "UTC/GMT +2:00")
и удалил,event.put("visibility", 3)
иevent.put("transparency", 0)
это работает хорошоandroid.database.sqlite.SQLiteException
Uri reminderUri = curActivity.getApplicationContext().getContentResolver().insert(Uri.parse(reminderUriString), reminderValues);
я использовал код ниже, это решает мою проблему, чтобы добавить событие в календарь устройства по умолчанию в ICS, а также на версию меньше, чем ICS
Надеюсь, это поможет .....
источник
Начиная с версии Android 4.0 официальные API и намерения доступны для взаимодействия с доступными поставщиками календаря .
источник
На всякий случай, если кому-то это нужно для Xamarin в c #:
Вспомогательные функции:
источник
Календарь Google является "родным" приложением календаря. Насколько я знаю, все телефоны поставляются с установленной версией, а SDK по умолчанию предоставляет версию.
Вы можете проверить этот учебник для работы с ним.
источник
Попробуй это ,
источник
если у вас есть заданная строка даты с датой и временем.
например
String givenDateString = pojoModel.getDate()/* Format dd-MMM-yyyy hh:mm:ss */
используйте следующий код, чтобы добавить событие с датой и временем в календарь
источник
Вы должны добавить флаг:
или вы вызовете ошибку с:
startActivity()
извне контекста действия требуетсяFLAG_ACTIVITY_NEW_TASK
источник