在Android 29中,我希望能够在多个Android用户之间共享大文件。是否可以创建用户可以访问的共享目录?用户已安装的应用程序是否可以浏览该目录?
或者,也许有一个用户拥有原始目录和文件,而其他用户具有已挂载/符号链接的目录?
对于我的实现来说,已安装的应用程序可以访问此目录非常重要。
我一直在浏览Android文件系统并试图弄清楚:/mnt/user/0
、/storage/emulated/0
和/data/media/0/
但我看不到在另一个用户的主目录中将符号链接到这些目录中的文件夹的方法。
您正在寻找的目录实际上在您的情况下/storage/emulated/0
。我的意思是所有其他应用程序可以使用/访问的唯一目录是外部存储。
但是,从Android Q(targetSDKVersion 29)开始,外部存储权限有很多变化。
如果您使用的是低于Android Q的Android版本,我建议您查看getExternalStoragePublicDirectory
的文档。
对于Android Q及更高版本,我建议查看getExternalFileDir
的文档。
此外,@CommonsWare有一篇关于此的精彩文章。请看一下他的博客文章。我在这里引用他的博客。
对于安卓 Q,您可以添加
android:requestLegacyExternalStorage="true"
到您的<application>
元素。这会让您选择使用旧存储模型, 并且您现有的外部存储代码将起作用。从技术上讲,您只需要在更新您的
targetSdkVersion
到29
.targetSdkVersion
值较低的应用 默认选择使用旧存储,并且需要android:requestLegacyExternalStorage="false"
选择退出。