Właśnie zaczynam działać na Androidzie, a dziś na spotkaniu projektowym ktoś powiedział, że Android nie ma natywnej aplikacji kalendarza, więc użytkownicy po prostu używają dowolnej aplikacji kalendarza.
Czy to prawda, a jeśli tak, jak programowo dodać wydarzenie do kalendarza użytkownika? Czy istnieje wspólny interfejs API, który wszyscy dzielą?
Jeśli chodzi o to, co jest warte, prawdopodobnie celujemy w Androida 2.x.
Odpowiedzi:
Który kalendarz?
Nie, nie więcej niż „wspólny interfejs API, który wszyscy współużytkują” dla aplikacji kalendarza systemu Windows. Istnieją pewne popularne formaty danych (np. ICalendar) i protokoły internetowe (np. CalDAV), ale nie ma wspólnego interfejsu API. Niektóre aplikacje kalendarza nie oferują nawet interfejsu API.
Jeśli istnieją określone aplikacje kalendarza, z którymi chcesz się zintegrować, skontaktuj się z ich programistami i określ, czy oferują one interfejs API. Na przykład aplikacja Calendar z projektu open source dla systemu Android, który przytacza Mayra, nie oferuje udokumentowanych i obsługiwanych interfejsów API. Google nawet wyraźnie powiedział programistom, aby nie używali technik przedstawionych w samouczku przytoczonym przez Mayrę.
Inną opcją jest dodanie wydarzeń do danego kalendarza internetowego. Na przykład najlepszym sposobem dodawania wydarzeń do aplikacji Kalendarz z projektu open source dla Androida jest dodanie wydarzenia do Kalendarza Google użytkownika za pośrednictwem odpowiednich interfejsów API GData.
AKTUALIZACJA
Dodano system Android 4.0 (poziom interfejsu API 14)
CalendarContract
ContentProvider
.źródło
Spróbuj tego w swoim kodzie:
źródło
Użyj tego interfejsu API w swoim kodzie. Pomoże Ci wstawić zdarzenie, wydarzenie z przypomnieniem i wydarzenie ze spotkaniem mogą być włączone ... Ten interfejs API działa na platformie 2.1 i nowszych Ci, którzy używają mniej niż 2.1 zamiast contentu: // com .android.calendar / events używają content: // calendar / events
źródło
event.put("eventTimezone", "UTC/GMT +2:00")
i wyeliminowałemevent.put("visibility", 3)
ievent.put("transparency", 0)
działa dobrzeandroid.database.sqlite.SQLiteException
na liniiUri reminderUri = curActivity.getApplicationContext().getContentResolver().insert(Uri.parse(reminderUriString), reminderValues);
użyłem poniższego kodu, rozwiązuje mój problem dodawania zdarzenia w domyślnym kalendarzu urządzenia w ICS, a także w wersji mniejszej niż ICS
Mam nadzieję, że to pomoże .....
źródło
Od wersji 4.0 systemu Android dostępne są oficjalne interfejsy API i intencje umożliwiające interakcję z dostępnymi dostawcami kalendarzy .
źródło
Na wszelki wypadek, jeśli ktoś potrzebuje tego dla platformy Xamarin w języku C #:
Funkcje pomocnicze:
źródło
Kalendarz Google to „natywna” aplikacja kalendarza. O ile wiem, wszystkie telefony są dostarczane z zainstalowaną wersją, a domyślny SDK zapewnia wersję.
Możesz zapoznać się z tym samouczkiem, aby z nim pracować.
źródło
Spróbuj tego ,
źródło
jeśli masz podany ciąg Date z datą i godziną.
np
String givenDateString = pojoModel.getDate()/* Format dd-MMM-yyyy hh:mm:ss */
użyj poniższego kodu, aby dodać wydarzenie z datą i godziną do kalendarza
źródło
musisz dodać flagę:
lub spowodujesz błąd z:
startActivity()
spoza kontekstu działania wymagaFLAG_ACTIVITY_NEW_TASK
źródło