Android将文件保存到外部存储而不添加写权限?

问题描述 投票:0回答:3

我们可以在不在清单中添加写权限的情况下将数据写入外部存储吗?存储访问框架或下载管理器是否对此提供任何支持?

android android-download-manager
3个回答
16
投票

这取决于您要在何处写入文件以及您的目标 SDK。如果您想在应用程序的外部目录(

getExternalFilesDir(String)
getExternalCacheDir()
)中写入文件并且您的目标是SDK19+,则不需要该权限。如果你想写在其他领域或针对SDK<19, then you need the permission. HOWEVER, based on my experience, there is a bug in some Lollipop versions out there that is causing the permission to still be required. So I usually put
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="22"/>
在我的清单中


6
投票

也许

FileProvider
就是您正在寻找的。

FileProvider

Support Library
的一部分,适用于从 2.3 开始的所有 Android 版本。此 API 的主要目标是
temporary open a private file to some targeted apps
:您将文件保存在您的私人文件夹中,并让其他一些应用程序通过安全的
ContentProvider
读取甚至写入它。当您的活动被销毁时,权限将被撤销

更多信息


3
投票

简短回答:不。如果有一种简单的方法可以绕过所需的权限,那么它们就毫无意义了。请参阅下面的文档:

https://developer.android.com/training/basics/data-storage/files.html

要写入外部存储,您需要具有写入外部存储的权限。

您为什么要采取尚未获得许可的操作?

© www.soinside.com 2019 - 2024. All rights reserved.