Ich bin gerade mit Android auf dem Laufenden und heute hat in einem Projekttreffen jemand gesagt, dass Android keine native Kalender-App hat, sodass Benutzer einfach die Kalender-App verwenden, die sie mögen.
Ist das wahr und wenn ja, wie füge ich programmgesteuert ein Ereignis zum Kalender des Benutzers hinzu? Gibt es eine gemeinsame API, die alle gemeinsam nutzen?
Für das, was es wert ist, zielen wir wahrscheinlich auf Android 2.x ab.
Antworten:
Welcher Kalender?
Nein, es gibt nicht mehr als eine "gemeinsame API, die alle gemeinsam nutzen" für Windows-Kalender-Apps. Es gibt einige gängige Datenformate (z. B. iCalendar) und Internetprotokolle (z. B. CalDAV), jedoch keine gemeinsame API. Einige Kalender-Apps bieten nicht einmal eine API.
Wenn Sie bestimmte Kalenderanwendungen integrieren möchten, wenden Sie sich an deren Entwickler und ermitteln Sie, ob sie eine API anbieten. So bietet beispielsweise die von Mayra zitierte Kalenderanwendung aus dem Android-Open-Source-Projekt keine dokumentierten und unterstützten APIs. Google hat Entwicklern sogar ausdrücklich empfohlen, die im von Mayra zitierten Tutorial beschriebenen Techniken nicht zu verwenden .
Sie können auch Ereignisse zum betreffenden Internetkalender hinzufügen. Der beste Weg, um der Kalenderanwendung Ereignisse aus dem Android Open Source-Projekt hinzuzufügen, besteht beispielsweise darin, das Ereignis über die entsprechenden GData-APIs zum Google Kalender des Benutzers hinzuzufügen.
AKTUALISIEREN
Android 4.0 (API Level 14) hinzugefügt a
CalendarContract
ContentProvider
.quelle
Versuchen Sie dies in Ihrem Code:
quelle
Verwenden Sie diese API in Ihrem Code. Sie hilft Ihnen beim Einfügen von Ereignissen, Ereignissen mit Erinnerungen und Ereignissen mit Besprechungen. Diese API funktioniert für Plattform 2.1 und höher. Diejenigen, die weniger als 2.1 anstelle von content: // com verwenden .android.calendar / events verwendet content: // calendar / events
quelle
event.put("eventTimezone", "UTC/GMT +2:00")
und beseitigtevent.put("visibility", 3)
undevent.put("transparency", 0)
und es funktioniert gutandroid.database.sqlite.SQLiteException
in der SchlangeUri reminderUri = curActivity.getApplicationContext().getContentResolver().insert(Uri.parse(reminderUriString), reminderValues);
Ich habe den folgenden Code verwendet. Es löst mein Problem, ein Ereignis im Standard-Gerätekalender in ICS und auch in einer Version ohne ICS hinzuzufügen
Hoffe es würde helfen .....
quelle
Ab Android Version 4.0 stehen offizielle APIs und Absichten zur Verfügung, um mit den verfügbaren Kalenderanbietern zu interagieren .
quelle
Nur für den Fall, dass jemand dies für Xamarin in c # benötigt:
Hilfsfunktionen:
quelle
Google Kalender ist die "native" Kalender-App. Soweit ich weiß, wird auf allen Telefonen eine Version installiert, und das Standard-SDK bietet eine Version.
Sie können dieses Tutorial lesen, um damit zu arbeiten.
quelle
Versuche dies ,
quelle
wenn Sie eine bestimmte Datumszeichenfolge mit Datum und Uhrzeit haben.
für zB
String givenDateString = pojoModel.getDate()/* Format dd-MMM-yyyy hh:mm:ss */
Verwenden Sie den folgenden Code, um dem Kalender ein Ereignis mit Datum und Uhrzeit hinzuzufügen
quelle
Sie müssen Flag hinzufügen:
oder Sie verursachen Fehler mit:
startActivity()
von außerhalb eines Aktivitätskontexts erfordert dieFLAG_ACTIVITY_NEW_TASK
quelle