我的问题是,对于安卓项目,我必须在手机的外部存储器中创建一个文件夹,这可以在安卓11enter image description here和更低版本的手机上完成。我应该向我的项目添加哪些权限和代码?
发布于 2021-03-15 15:28:55
如果你必须支持Android 11,那么你必须支持作用域存储来访问整个存储,而不仅仅是应用程序受限的文件夹(基于外部根文件夹的屏幕)。有关更多信息,请查看THIS文档
问题是需要哪些perm,所以为了完全访问整个内容,您需要
// works till Android 9/10
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
// for Android 10/11
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />我强烈建议:不要使用第二个权限,将你的数据存储在应用程序受限的文件夹中(就像在链接的文档中一样,getExternalFilesDirs()方法),那么只使用WRITE_EXTERNAL_STORAGE就足够了
如何创建文件夹?HERE你有一些例子,只是不要使用getExternalStorageDirectory(),而是使用getExternalFilesDirs()来访问受应用程序限制的文件夹(或者使用getExternalStorageDirectory(),但是你需要为Android11声明第二个权限)
发布于 2021-03-15 16:20:21
对于Android 11设备:
使用存储访问框架和ACTION_OPEN_DOCUMENT_TREE让用户创建并选择Pixir目录。
不需要任何权限。
之后,您可以使用saf方法在其中创建任意数量的文件和子目录。
如果Documents/Pixir目录也可以这样做,那么您可以使用旧的经典文件、代码和通常的权限在其中创建文件和文件夹。
https://stackoverflow.com/questions/66633412
复制相似问题