Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi Android Calendar instances auslesen (https://www.delphipraxis.net/188629-android-calendar-instances-auslesen.html)

zeras 22. Mär 2016 18:34

Android Calendar instances auslesen
 
Hallo,

ich möchte Termine aus dem Android Kalender auslesen. Das geht soweit, nur dass ich die Wiederholtermine nicht auslesen kann. Nach einigen Recherchen soll man nicht die Events auslesen, sondern die Instances.
So in der Art kann ich die Kalenderdaten auslesen. Aber wenn man die Uri auf
"content://com.android.calendar/instances/when" ändert und die Projection Werte anpaßt, geht das nicht. Bei einigen Android Beispielen soll man in der Art "query(ContentResolver cr, String[] projection, long begin, long end)" auslesen, aber da komme ich mit dem bestehenden Quelltext nicht klar.
Hat jemand eine Idee, wie ich an die Instances komme?


Delphi-Quellcode:
Function GetCalEvents(DTNow: TDateTime): Boolean;
var
  Cursor: JCursor;
  l_eventUri: Jnet_Uri;
  SortOrder : JString;
  Selection: JString;
  SelectionArgs: TJavaObjectArray<JString>;
  l_projection: TJavaObjectArray<JString>;
  sSQLEventAbfrage : String;
  EventCount: integer;
  EventId : integer;


begin

  Result := False;

  l_eventUri := StrToJURI('content://com.android.calendar/events');
  l_projection := TJavaObjectArray<JString>.Create(8);
  l_projection.Items[0] := StringToJString(TokTitle);
  l_projection.Items[1] := StringToJString(TokDTStart);
  l_projection.Items[2] := StringToJString(TokDTEnd);
  l_projection.Items[3] := StringToJString(TokEventTimeZone);
  l_projection.Items[4] := StringToJString(TokHasAlarm);
  l_projection.Items[5] := StringToJString(TokOriginal_ID);
  l_projection.Items[6] := StringToJString(TokAllDay);
  l_projection.Items[7] := StringToJString(TokID);

  SortOrder := StringToJString('dtstart ASC, dtend ASC'); //vom ältesten zum neuesten Eintrag

  Selection := nil;

  Selection := StringToJString(sSQLEventAbfrage);
  SelectionArgs := nil; // im Moment nicht genutzt

  //hier die Abfrage der Termine im jeweiligem Zeitraum
  Cursor := TAndroidHelper.Activity.getContentResolver.query(l_eventUri, l_projection, Selection, SelectionArgs, SortOrder);

  if not Assigned(Cursor) then begin
    Log('GetCalEvents not Assigned(Cursor)',[]);
    Exit;
  end;

  EventCount := Cursor.getCount;

zeras 23. Mär 2016 18:48

AW: Android Calendar instances auslesen
 
Mein Problem scheint schon sehr speziell zu sein, da derzeit niemand auf mein Problem eine Lösung hat.
Deshalb pusche ich mal diesen Beitrag in der Hoffnung, dass doch noch jemand eine Idee hat.
Ich bin da schon seit letztem Wochenende dran und finde keine Lösung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:36 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-2025 by Thomas Breitkreuz