- 人气:
- 放大
- 缩小
- 二维码
- 赞赏
delphi 10.4.1 在android平台下建立文件无权限
Delphi 10.4.1 在android平台下建立文件无权限
TFileStream.Create(FInstallFileName, fmCreate or fmShareExclusive);
这一句在android下执行,出错,提示:
Cannot create file "/stroage/emulated/0/Documents/com.kinglandsoft.xxx.apk". Permission denied.

10.3.3没有这个问题的,权限够的。
百度查到的资料:
Android 10 创建文件一直报错:Permission denied;
原来 Android 10 改变了文件的存储方式
可以在Androidmainfest 里面的application添加
android:requestLegacyExternalStorage="true"
按上面的方法解决了!
我为什么在10.3.3正常呢?是因为10.3.3使用的android sdk版本低,换成10.4.1用的是高版本的sdk,os要检查的。试着用Delphi 10.4.1建立新项目,查看AndroidManifest.template.xml,发现已经增加了这一行:android:requestLegacyExternalStorage="true"
就是说,我的项目是10.3.3建立的,如果用10.4.1建立项目,则没有这个问题。
复制代码
package="%package%"
android:versionCode="%versionCode%"
android:versionName="%versionName%"
android:installLocation="%installLocation%">
<%uses-permission%>
android:restoreAnyVersion="%restoreAnyVersion%"
android:label="%label%"
android:debuggable="%debuggable%"
android:largeHeap="%largeHeap%"
android:icon="%icon%"
android:theme="%theme%"
android:hardwareAccelerated="%hardwareAccelerated%"
android:resizeableActivity="false"
android:requestLegacyExternalStorage="true">
后记:注意10.3.3加这一行无法编译通过。
来源:https://www.cnblogs.com/kinglandsoft/p/14294390.html