这是与此问题相关的伴随问题:
Delphi - New apps on Google Play must target Android 8 (API level 26) - PUSH notification in background
我正在尝试将位图保存到Android的图片文件夹下的“clientName”子文件夹中。
如果我使用原始的AndroidManifest.template.xml文件,一切都按预期工作。如果我使用以'targetSdkVersion =“26”'修补的AndroidManifest.template.xml文件来满足谷歌接受应用程序商店的最后期限,则相同的代码将失败(在“.SaveToFile”上引发异常)。
有什么方法可以解决这个问题,而Embarcadero会在内部解决这个问题吗?
这是代码:
BaseFolder := System.IOUtils.TPath.GetSharedPicturesPath;
If DirectoryExists(BaseFolder) = True then
Begin
SaveFolder := BaseFolder+System.IOUtils.TPath.DirectorySeparatorChar+clientName;
If DirectoryExists(SaveFolder) = False then ForceDirectories(SaveFolder);
SaveFile := SaveFolder+System.IOUtils.TPath.DirectorySeparatorChar+clientName+'_'+ReplaceStr(ReplaceStr(DateTimeToStr(Now),':','.'),'/','.')+saveImageFileExt;
Try
bmpCropped.SaveToFile(SaveFile);
Except
displayMessage := strErrorSavingPicture;
End;
If FileExists(SaveFile) = True then displayMessage := strPictureSaved;
End
Else displayMessage := strPictureFolderNotFound;
答案 0 :(得分:0)
引入支持运行时权限的Delphi 10.3解决了该问题。