Einzelnen Beitrag anzeigen

sko1

Registriert seit: 27. Jan 2017
607 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

Start eines Installationspaketes aus einer App heraus

  Alt 26. Mai 2025, 07:57
Hallo,

in 3 verschiedenen Apps verwende ich den folgenden Code um ein Update zu installieren, seit Android 15 funktioniert es bei 2 Apps weiterhin, bei einer bekomme ich die gezeigten Fehlermeldung

Delphi-Quellcode:
procedure StartUpdate;
var
  Intent: JIntent;
  FileName: string;
  fileext: string;
  dsc: string;
  Authority: JString;
  LUri: Jnet_Uri;
  aFile: JFile;
begin
  dsc := TPath.DirectorySeparatorChar;
  FileName := sDownloadPath + FilenameAPK;
  fileext := ExtractFileExt(FileName);
  fileext := uppercase(stringreplace(fileext, '.', '', []));
  if not FileExists(FileName) then
  begin
    showmessage(FileName + ' nicht gefunden !');
    exit;
  end;
  if TOSVersion.Check(8) then
  begin
    // wichtig ab Android 8 Zugriffsrechte!
    Authority := StringToJString
      (JStringToString(TAndroidHelper.Context.getApplicationContext.
      getPackageName) + '.fileprovider');
    aFile := TJFile.JavaClass.init(StringToJString(sDownloadPath),
      StringToJString(FilenameAPK));
    LUri := TJFileProvider.JavaClass.getUriForFile(TAndroidHelper.Context,
      Authority, TJFile.JavaClass.init(StringToJString(FileName)));
    Intent := TJIntent.Create;
    Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
    // Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW);
    Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
    Intent.addFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION);
    Intent.setDataAndType(LUri,
      StringToJString('application/vnd.android.package-archive'));
  end
  else
  begin
    // Intent je nach Dateiendung
    FileName := 'file://' + FileName;
    Intent := TJIntent.Create;
    Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
    Intent.setDataAndType(StrToJURI(FileName),
      StringToJString('application/vnd.android.package-archive'));
  end;
  TAndroidHelper.Activity.startActivity(Intent);
end;
Danke für Tips!
Ciao
Stefan
Miniaturansicht angehängter Grafiken
fehler.jpg  
  Mit Zitat antworten Zitat