Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 10.3 Android 9将下载的数据保存到共享下载文件夹_Android_Delphi_Delphi 10.3 Rio - Fatal编程技术网

Delphi 10.3 Android 9将下载的数据保存到共享下载文件夹

Delphi 10.3 Android 9将下载的数据保存到共享下载文件夹,android,delphi,delphi-10.3-rio,Android,Delphi,Delphi 10.3 Rio,我使用的是Delphi10.3.1Rio。我制作了一个可以自我更新的应用程序。该应用程序根据Android 9的要求使用HTTPS从站点下载APK。我已经在Delphi10.2.3中使用了两年了。这个很好用。我使用System.IOUtils.TPath.Combine(System.IOUtils.TPath.GetSharedDownloadsPath,apnavn)以获取下载到的路径 我以前和现在读过新的TNetHTTPClient,因为旧的不支持Android 9所要求的HTTPS。我被

我使用的是Delphi10.3.1Rio。我制作了一个可以自我更新的应用程序。该应用程序根据Android 9的要求使用HTTPS从站点下载APK。我已经在Delphi10.2.3中使用了两年了。这个很好用。我使用
System.IOUtils.TPath.Combine(System.IOUtils.TPath.GetSharedDownloadsPath,apnavn)
以获取下载到的路径

我以前和现在读过新的
TNetHTTPClient
,因为旧的不支持Android 9所要求的HTTPS。我被授予访问外部存储器的权限。我下载到
TMemoryStream
,并保存到共享下载路径。然后我执行一个
Intent
来更新应用程序


这在Android 6上运行良好,但在Android 9上不保存文件。我试图请求
TJManifest\u permission.JavaClass.request\u INSTALL\u PACKAGES
的权限,但这不是请求的,也不是授予的。我在网上搜索,没有找到任何解决办法。我希望有人能帮忙。

它是否显示任何错误消息?您是否使用logcat查看器检查设备记录的消息?您有权限吗?请求权限和执行意图的代码是什么样子的?仅供参考,TIdHTTP在Android上确实支持HTTPS,但在Android 6+上,您必须在应用程序中部署OpenSSL LIB,因为Google已经在操作系统级别放弃了对OpenSSL的支持。您是否有足够的权限将数据保存到共享下载路径?我不是安卓的专家,但我怀疑
TJManifest\u权限。JavaClass.REQUEST\u INSTALL\u软件包
为您提供了权限。请求权限的代码是标准的,并且有效。我找不到写入共享下载的任何特定权限,但我有写入外部磁盘的权限,并且可以正常工作。下载工作正常,数据在内存流中读取,但在下载时将数据流保存到文件并不保存任何内容。没有错误消息。尝试在没有权限的情况下保存共享文档会得到相同的结果,保存后不存在任何文件。TidHTTP在我的设备上不适用于https,但TNetHTTPclient适用。问题只是保存到共享下载fram Tmemorystream。您是否尝试使用最小的应用程序,不包含HTTPS下载,只包含简单的TFileStream。创建(…)以写入GetSharedDownloadsPath?是否显示任何错误消息?您是否使用logcat查看器检查设备记录的消息?您有权限吗?请求权限和执行意图的代码是什么样子的?仅供参考,TIdHTTP在Android上确实支持HTTPS,但在Android 6+上,您必须在应用程序中部署OpenSSL LIB,因为Google已经在操作系统级别放弃了对OpenSSL的支持。您是否有足够的权限将数据保存到共享下载路径?我不是安卓的专家,但我怀疑
TJManifest\u权限。JavaClass.REQUEST\u INSTALL\u软件包
为您提供了权限。请求权限的代码是标准的,并且有效。我找不到写入共享下载的任何特定权限,但我有写入外部磁盘的权限,并且可以正常工作。下载工作正常,数据在内存流中读取,但在下载时将数据流保存到文件并不保存任何内容。没有错误消息。尝试在没有权限的情况下保存共享文档会得到相同的结果,保存后不存在任何文件。TidHTTP在我的设备上不适用于https,但TNetHTTPclient适用。问题只是保存到共享下载fram Tmemorystream。您是否使用了一个最小的应用程序进行了尝试,该应用程序不包含HTTPS下载,只包含一个简单的TFileStream。创建(…)以写入GetSharedDownloadsPath?