2

在 Android 29 中,我希望能够在多个 Android 用户之间共享大文件。是否可以创建用户可以访问的共享目录?用户安装的应用程序能否使该目录可供浏览?

或者也许有一个用户拥有原始目录和文件,而其他用户拥有一个挂载/符号链接的目录?

安装的应用程序可以访问此目录对我的实现很重要。

我一直在浏览 Android 文件系统并试图弄清楚: /mnt/user/0, /storage/emulated/0/data/media/0/但是我看不到在另一个用户的主目录中将符号链接到这些目录中的文件夹的方法。

4

1 回答 1

2

您正在寻找的目录实际上/storage/emulated/0是您的情况。我的意思是所有其他应用程序可以使用/访问的唯一目录是外部存储。

但是,从 Android Q(targetSDKVersion 29)开始,外部存储权限发生了相当大的变化。

如果您使用的 Android 版本低于 Android Q,我建议您查看文档getExternalStoragePublicDirectory

对于 Android Q 及更高版本,我建议查看.getExternalFileDir

此外,@CommonsWare 有一篇关于此的精彩文章。请在他的博客文章中查看这里。我在这里引用他的博客。

对于 Android Q,您可以添加 android:requestLegacyExternalStorage="true"<application> 清单中的元素。这将使您选择使用旧存储模型,并且您现有的外部存储代码将起作用。

从技术上讲,只有在更新 targetSdkVersion29. 具有较低targetSdkVersion值的应用程序默认选择使用旧版存储,并且需要 android:requestLegacyExternalStorage="false"选择退出。

于 2020-04-28T15:08:34.413 回答