Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Warum Android-Berechtigungen direkt setzen?

  Alt 17. Apr 2023, 01:11
Rufst du die Berechtigungen denn beim Start ab? In aktuellen Android Versionen muss man diese explizit anfragen, wenn sie benötigt werden. Früher wurden diese bei der Installation abgefragt, was heute nicht mehr passiert.

Ich habe das per IFDEF meistens so gemacht, dass es unter Windows und Android identisch funktioniert, nur dass unter Android die Berechtigungen abgefragt werden. Sprich als Pseudocode:
Delphi-Quellcode:
procedure TXXX.FormActivate...
begin
  if FAlreadyActivated then
    Exit;
  FAlreadyActivated := True;
{$IFDEF ANDROID}
  PermissionsService.RequestPermissions...
end;

procedure TXXX.RequestPermissionsResult...
begin
  StatusLabel.Text := 'Überprüfe Rechte...';
  if (Length(AGrantResults) = 1) and (AGrantResults[0] = TPermissionStatus.Granted) then
  begin
    StatusLabel.Text := 'Lade App...';
{$ENDIF}
    TThread.CreateAnonymousThread...
end;
Auf die Weise werden unter Android die Rechte angefordert und die weitere Initialisierung im Callback RequestPermissionsResult ausgeführt, während unter Windows die Initialisierung direkt im FormActivate passiert.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat