在不添加写入权限到清单文件中,能否将数据写入外部存储?存储访问框架或下载管理器是否支持此功能?
在不添加写入权限到清单文件中,能否将数据写入外部存储?存储访问框架或下载管理器是否支持此功能?
这取决于你想要在哪里写文件以及你所针对的SDK。如果你想要将文件写入应用程序的外部目录(getExternalFilesDir(String)
和getExternalCacheDir()
),并且你的目标SDK版本为19或更高,则不需要权限。如果你想要写入其他区域或者针对的SDK版本是小于19的,则需要该权限。然而,根据我的经验,在某些Lollipop版本中存在一个错误,导致仍需该权限。因此,我通常会在清单文件中添加<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="22"/>
。
FileProvider
。
FileProvider
是Support Library
的一部分,适用于所有Android版本,从2.3开始。该API的主要目标是临时将私有文件打开给某些特定应用程序
:您保存文件在私有文件夹中,并通过安全的ContentProvider
让其他应用程序读取或甚至写入它。当您的活动被销毁时,权限将被撤销
。
更多信息
简短回答:不行。如果有一种简单的方法可以绕过所需权限,那么这些权限将变得毫无意义。请参见下面的文档:
https://developer.android.com/training/basics/data-storage/files.html
要写入外部存储器,您需要获得写入外部存储器的权限。
为什么您想要执行未获得权限的操作呢?