• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Delphi10.4.1在android平台下建立文件无权限

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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建立项目,则没有这个问题。

<?xml version="1.0" encoding="utf-8"?>
<!-- BEGIN_INCLUDE(manifest) -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="%package%"
        android:versionCode="%versionCode%"
        android:versionName="%versionName%"
        android:installLocation="%installLocation%">

    <uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="%targetSdkVersion%" />
    <%uses-permission%>
    <uses-feature android:glEsVersion="0x00020000" android:required="True"/>
    <application android:persistent="%persistent%"
        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加这一行无法编译通过。 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap