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