AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zur Klasse CalendarEventsManager

Ein Thema von Loko789 · begonnen am 2. Okt 2015 · letzter Beitrag vom 2. Okt 2015
Antwort Antwort
Loko789

Registriert seit: 23. Sep 2015
74 Beiträge
 
#1

Frage zur Klasse CalendarEventsManager

  Alt 2. Okt 2015, 10:26
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:
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;
Dort steht was mit tstart, dtend. Kann man das "nutzen" oder ist das schon festgelegt?
Bitte kann mir bitte einer weiterhelfen

Danke
Gruß

Geändert von Loko789 ( 2. Okt 2015 um 10:33 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Frage zur Klasse CalendarEventsManager

  Alt 2. Okt 2015, 10:39
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).
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Loko789

Registriert seit: 23. Sep 2015
74 Beiträge
 
#3

AW: Frage zur Klasse CalendarEventsManager

  Alt 2. Okt 2015, 10:49
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?
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Frage zur Klasse CalendarEventsManager

  Alt 2. Okt 2015, 10:53
Indem Du dtStart und dtEnd auf die gewünschten Werte setzt.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Loko789

Registriert seit: 23. Sep 2015
74 Beiträge
 
#5

AW: Frage zur Klasse CalendarEventsManager

  Alt 2. Okt 2015, 10:58
Indem Du dtStart und dtEnd auf die gewünschten Werte setzt.
und wie?
Tut mir leid, wenn ich so doof nachfrage aber ich kenne mich 0% damit aus.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Frage zur Klasse CalendarEventsManager

  Alt 2. Okt 2015, 11:42
wEvent.put(StringToJString('dtstart'), TJLong.JavaClass.init(MilliSecondsBetween(ADate , EncodeDate(1970,1,1)))); Was macht wohl put? und was EncodeDate? (Ein Tipp dir Parameter könnten Jahr, Monat, Tag bedeuten)
Markus Kinzler
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Frage zur Klasse CalendarEventsManager

  Alt 2. Okt 2015, 11:54
was die beiden versuchen dir zu sagen:

schreib ne überladene Methode von AddNewReminder in der du dann Start und Ende als Parameter übergeben kannst...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz