我们可以在不在清单中添加写入权限的情况下将数据写入外部存储吗?存储访问框架或下载管理器是否为此提供了任何支持?
答案 0 :(得分:7)
这取决于您要编写文件的位置以及您要定位的SDK。如果您要在应用的外部目录(getExternalFilesDir(String)
和getExternalCacheDir()
)中编写文件,并且您的目标是SDK19 +,则不需要该权限。如果您想在其他区域写作或定位SDK&lt; 19,那么您需要获得该权限。但是,根据我的经验,一些Lollipop版本中存在一个错误,导致仍然需要许可。所以我通常把<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="22"/>
放在我的清单中。
答案 1 :(得分:2)
简答:不。如果有一种简单的方法来绕过所需的权限,那么它们就毫无意义。请参阅以下文档:
https://developer.android.com/training/basics/data-storage/files.html
要写入外部存储,您需要获得写入外部存储的权限。
为什么你想要采取你未获得许可的行动呢?
答案 2 :(得分:0)
也许您正在寻找FileProvider
。
FileProvider 是Support Library
的一部分,可用于所有从 2.3 开始的Android版本。该API的主要目标是temporary open a private file to some targeted apps
:将文件保存在私有文件夹中,并让其他一些应用通过安全的ContentProvider
读取甚至写入文件。活动被销毁后,权限被撤销。