![]() |
Frage zur Klasse CalendarEventsManager
Hallo,
Ich nutze die CalendarEventsManager Klasse um per "klick" von der App, Erinnerungen in den Android Kalender zu speichern. Wenn ich eine neue Erinnerung über "fManager.AddNewReminder(ADate: TDate; ATitle: string)" anlege, sieht sie immer wie folgt aus: -Datum (Immer ganztägig) -Titel Aber ich will eine Erinnerung z.B. eine Startzeit oder eine Länge o.ä. geben. Ich habe in der Klasse unter "TCalendarEventsManager.AddNewReminder" folgendes gefunden:
Code:
Dort steht was mit tstart, dtend. Kann man das "nutzen" oder ist das schon festgelegt?
function TCalendarEventsManager.AddNewReminder(ADate: TDate; ATitle: string): integer;
var wEvent : JContentValues; wUri : Jnet_Uri; begin try wEvent := TJContentValues.JavaClass.init; wEvent.put(StringToJString('calendar_id'), TJInteger.JavaClass.init(fCalendarID)); wEvent.put(StringToJString('title'), StringToJString(ATitle)); // wEvent.put(StringToJString('description'), StringToJString('Description here if needed')); wEvent.put(StringToJString('dtstart'), TJLong.JavaClass.init(MilliSecondsBetween(ADate , EncodeDate(1970,1,1)))); wEvent.put(StringToJString('dtend'), TJLong.JavaClass.init(MilliSecondsBetween(ADate , EncodeDate(1970,1,1)))); wEvent.put(StringToJString('eventTimezone'), StringToJString('Europe/London')); wEvent.put(StringToJString('allDay'), TJBoolean.JavaClass.init(StringToJString('true'))); wEvent.put(StringToJString('hasAlarm'), TJBoolean.JavaClass.init(StringToJString('true'))); wEvent.put(StringToJString('accessLevel'), TJInteger.JavaClass.init(3)); // wEvent.put(StringToJString('guestsCanModify'), TJBoolean.JavaClass.init(StringToJString('true'))); wUri := fContentResolver.insert(StrToJURI('content://com.android.calendar/events'),wEvent); Result := StrToInt(JStringToString(wUri.getLastPathSegment())); wEvent.clear; wEvent.put(StringToJString('event_id'),TJInteger.JavaClass.init(Result)); wEvent.put(StringToJString('method'),TJInteger.JavaClass.init(1)); wEvent.put(StringToJString('minutes'),TJInteger.JavaClass.init(30)); wEvent.put(StringToJString('event_id'),TJInteger.JavaClass.init(Result)); fContentResolver.insert(TJCalendarContract_Reminders.JavaClass.CONTENT_URI, wEvent); except On E:Exception do Raise Exception.create('[TCalendarEventsManager.AddNewReminder] : '+E.message); end; end; Bitte kann mir bitte einer weiterhelfen :thumb: Danke Gruß |
AW: Frage zur Klasse CalendarEventsManager
Dann schreibe doch die gewünschten Daten einfach in den Event. Am Source siehst Du doch, dass das Verhalten absichtlich so programmiert wurde (z.b. allDay=TRUE).
|
AW: Frage zur Klasse CalendarEventsManager
Hallo Union,
ok gut aber was ist wenn ich Termine haben will, wo einer 3 stunden geht und um 20:00 Uhr und der andere 10 stunden und um 12:00 beginnt. :? Wie kann ich das ändern das wäre mir wichtiger? :hello: |
AW: Frage zur Klasse CalendarEventsManager
Indem Du dtStart und dtEnd auf die gewünschten Werte setzt.
|
AW: Frage zur Klasse CalendarEventsManager
Zitat:
Tut mir leid, wenn ich so doof nachfrage aber ich kenne mich 0% damit aus. :gruebel: |
AW: Frage zur Klasse CalendarEventsManager
Delphi-Quellcode:
Was macht wohl put? und was EncodeDate? (Ein Tipp dir Parameter könnten Jahr, Monat, Tag bedeuten)
wEvent.put(StringToJString('dtstart'), TJLong.JavaClass.init(MilliSecondsBetween(ADate , EncodeDate(1970,1,1))));
|
AW: Frage zur Klasse CalendarEventsManager
was die beiden versuchen dir zu sagen:
schreib ne überladene Methode von AddNewReminder in der du dann Start und Ende als Parameter übergeben kannst... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz