【发布时间】:2021-07-02 00:15:49
【问题描述】:
我正在开发一个应用程序。我在其中将不同的文件类型(例如 docx、pdf、zip)上传到 WAMP 服务器。以下是我的内部存储的文件路径。
/storage/emulated/0/WhatsApp/Media/WhatsApp Documents/api.txt
我已在 Manifest 文件以及运行时添加并允许存储权限以读取文件。但是没有可用的内部存储权限请求。
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
对于 Android 10,我也使用了这个属性
android:requestLegacyExternalStorage="true"
但是当我从内部存储读取文件进行上传时,我在 Android 11 OS (又名 Android R 板载三星 Galaxy)上遇到此错误。
java.io.FileNotFoundException:/storage/emulated/0/WhatsApp/Media/WhatsApp Documents/api.txt:打开失败:EACCES(权限被拒绝)
【问题讨论】:
-
这里可能会也可能不会。但是我曾经发现,如果您在手机以 USB 存储模式连接时调试应用程序,则会停止文件权限。无需将手机连接到 USB 到电脑并调试应用程序即可检查此项。
-
只需从 uri 中复制缓存中的文件或临时文件目录,然后上传即可。
标签: java android android-studio