AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Mobile Permission

Ein Thema von IMPEGA · begonnen am 24. Aug 2024 · letzter Beitrag vom 24. Aug 2024
Antwort Antwort
IMPEGA

Registriert seit: 19. Jan 2008
Ort: Brhv
83 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Mobile Permission

  Alt 24. Aug 2024, 09:17
Hallo zusammen
Ich versuche meine erste APP zu schreiben, dabei stoße ich schon am Anfang auf kleine Probleme.
Ich möchte eine App erstellen, womit ich nur ein Log schreibe.
Sprich, 2 Buttons, drücke ich auf OK wird in einer Datei das Datum und Zeit geschrieben.

Dazu brauche ich die Mobile Permission.
Hier hackt es leider.

Installiert Delphi 12.1 und Mobile Permission per "GetIT Package Manage" installiert.

Mein Test-Code für die Permission (gefunden im Netz)
Delphi-Quellcode:
unit Unit2;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Memo.Types,
  FMX.StdCtrls, FMX.Controls.Presentation, System.Permissions,
{$IFDEF ANDROID}
  AndroidApi.Helpers, FMX.Platform.Android,
  Androidapi.JNI.Widget, FMX.Helpers.Android, Androidapi.JNI.Os,
{$ENDIF}

 FMX.Edit, System.IOUtils;

type
  TForm2 = class(TForm)
    procedure FormShow(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
{$IFDEF ANDROID}
    PermissionWriteExternalStorage: string;
{$ENDIF}
  end;

var
  Form2: TForm2;

implementation

{$R *.fmx}

procedure TForm2.FormShow(Sender: TObject);
begin
 {$IFDEF ANDROID}
  PermissionWriteExternalStorage := JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE);
  PermissionsService.RequestPermissions([PermissionWriteExternalStorage],
    procedure(const APermissions: TArray<string>; const AGrantResults: TArray<TPermissionStatus>)
      begin
        if AGrantResults[0] = TPermissionStatus.Granted then
          ShowMessage('Erlaubt')
        else
          ShowMessage('Nicht erlaubt');
      end)
 {$ENDIF}
end;

end.
Ich bekomme diesen Fehler
[DCC Fehler] HeaderFooterTemplate.pas(51): E2250 Es gibt keine überladene Version von 'RequestPermissions', die man mit diesen Argumenten aufrufen kann

Testweise habe ich die Mobile Permission deinstalliert und eine ältere Version von GitHub installiert.
Das hat leider auch nicht funktioniert.

Kann mir jemand die Sache etwas erläutern? Bin nur ein Hobbycoder und mit Android habe ich noch nie zu tun gehabt.

Geändert von IMPEGA (24. Aug 2024 um 09:20 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.339 Beiträge
 
Delphi 12 Athens
 
#2

AW: Mobile Permission

  Alt 24. Aug 2024, 10:52
Hast du mal Nachgesehn?

* CodeVervollständigung
* zur CodePosition springen
* ...

Emba scheint an einigen Stellen doch endlich mal bissl was repariert zu haben (z.B. const/var und dergleichen geändert)
wie z.B. auch hier https://www.delphipraxis.net/215702-...ode-fehlt.html
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
777 Beiträge
 
#3

AW: Mobile Permission

  Alt 24. Aug 2024, 11:41
Probiere Mal:

Delphi-Quellcode:
procedure(const APermissions: TClassicStringDynArray; const AGrantResults: TClassicPermissionStatusDynArray)
...
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
777 Beiträge
 
#4

AW: Mobile Permission

  Alt 24. Aug 2024, 11:48
Oder das hier noch:
Delphi-Quellcode:
var
  PA: TArray<String>;
begin
  ...
  SetLength(PA, 1);
  PA[0] := PermissionWriteExternalStorage;
  ...
  PermissionsService.RequestPermissions(PA,
    procedure ...
  Mit Zitat antworten Zitat
IMPEGA

Registriert seit: 19. Jan 2008
Ort: Brhv
83 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Mobile Permission

  Alt 24. Aug 2024, 12:40
@himitsu
Meinst du im Ernst, mir damit geholfen zu haben?
Danke für dein Interesse, gebracht hat es aber gar nichts.
Nicht jeder ist ein Profi. Es gibt auch Leute, die es halt ein wenig als Hobby versuchen. Einfach mal aus Spaß am Programmieren.
Ein Verweis auf ein ähnliches Problem bringt in meinem Fall gar nichts.
Dann bitte lieber gar nicht antworten, wenn es für dich zu einfach erscheint.

@Olli73
Vielen Dank, ich muss heute leider ziemlich lange arbeiten, werde es aber gleich morgen testen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.339 Beiträge
 
Delphi 12 Athens
 
#6

AW: Mobile Permission

  Alt 24. Aug 2024, 14:02
Wir sollen also für dich das jetzt erst bei uns installieren, weil du zu faul bist selbst nachzusehn
oder uns wenigstens die Codezeile (und vielleicht noch bissl danach und davor) zu zeigen,
von dem, was in der Fehlermeldung steht und wo wir jetzt nicht mal eben so bei uns nachsehn können?

Obwohl alles Wichtige in der Fehlermeldung genannt wird?



Du hast uns zwar deinen Code gezeigt, aber eben nicht das, wo der Fehler liegt, wobei standardmäßig niemand Dieses bei sich rumliegen hat.
HeaderFooterTemplate.pas

Abgesehn davon, dass ich die genannte Datei nichtmal im GitRepo zu diesem GetIt-Package finden kann.
https://getitnow.embarcadero.com/?q=...&categories=-1
https://getitnow.embarcadero.com/mob...t-for-android/
https://github.com/adrianosantostrei...ns/tree/master



An einer Stelle wird eine Funktion aufgerufen, welche es SO garnicht gibt.
Dass es diese Funktion aber gibt, wird auch gesagt, nur dass irgendwas bezüglich der Parametersignatur nicht stimmt.
* fehlende oder zusätzliche Parameter (können z.B. auch geänderte/neue/entfernte Default-Parameter sein)
* falsche/andere Typen (auch hier spielt eine Rolle, dass Delphi da zuletzt bissl was bei sich geändert hat, bezüglich Kompatibilitäten der TypeAlias)
* einfach nur ein andere Deklaration der Parameterübergabe (const/var/out, als Pointer oder nicht)
* andere CallingConvention (cdecl/stdcall/...)
* die Namen der Parameter sind aber egal, kommt nur auf die Typen und die Art und Weise drauf an (z.B. bei Callbacks und Events)

Ja, manchmal ändert sich an einer API etwas und dann passen Eigene oder Fremdcodes eben nicht mehr zum Anderem.
Und dass sich hier, bei anderen Usern, auch schon etwas geändert hat, was nach schon etwas nach deinem Problem klingt, und was dort der Grund war, das gab ich dir als Hinweis mit, damit du aus oberer Liste erstmal diesen Punkt prüfen kannst.
Aufgrund des Problems, von jemand anderem, hatte ich zwar erstmal auf Punkt 3 getippt, aber selbst wenn es jetzt Punkt 2 sein mag, ändert es nichts an der ursprünglichen Aussage, auch wenn der Tipp nicht ganz passen möge.

Bei dir ist alles Wichtige vorhanden, dann ist es doch ein Leichteres für dich, im Gegenzug für uns, dort einfach mal nachzusehn, was Delphi dir anzeigt, was es dort gern haben möchte, und im Gegenzug jenes damit zu vergleichen, was du an diese Stelle siehst.



Gut, wenn das mit dem TClassicStringDynArray stimmt,
dann hat sich hier an einem Typ etwas geändert, welcher zum alten Typen nicht kompatibel ist (also im Prinzip das, was die Fehlermeldung auch besagt),
aber genau das hättest du so auch bemerken können.


Auch wenn ich es eigenartig finde, dass es "sorum" geändert wurde, also von der neueren Syntax, welche dafür gut ist solche Inkompatibilitäten zu beseitigen, zurück auf eine Ältere, welche solche Inkompatibilitäten geradezu provokativ anzieht,
wobei es selten Gründe gibt, sowas absichtlich zu machen. (z.B. um zwei syntaktisch gleiche, aber logisch unterschiedliche Typen überladen zu können)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (24. Aug 2024 um 14:30 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:57 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