什么是 com.android.externalstorage?

use*_*234 2 android xamarin.android android-file xamarin

尽管这是一个简单的问题,但我无法在googlestackoverflow上找到答案。

当我使用以下代码时,我得到这个结果//com.android.externalstorage.documents/tree/primary:Podcasts

var intent = new Intent(Intent.ActionOpenDocumentTree);
intent.PutExtra("android.content.extra.SHOW_ADVANCED", true);
intent.PutExtra("android.content.extra.FANCY", true);
intent.PutExtra("android.content.extra.SHOW_FILESIZE", true);
Run Code Online (Sandbox Code Playgroud)

你能帮我理解我的结果的各个部分吗?

Yos*_*aya 5

Android 存储如何工作?

为了确保 Android 应用程序之间的安全,Android 不允许您直接访问存储系统中的每个文件。他们有一种东西叫做ContentProvider.

将此内容提供者视为服务员,您的应用程序可以请求某个文件/文件夹(通过 Content Uri)。

内容 Uri 将如下所示:content://[Authority]/[path]/[id]只是内容 Uri 的一个示例。com.android.externalstorage.documents是权限的一个示例(用于访问外部存储提供商)。

因此,就您而言,您的 Uri 将使您能够访问外部存储中的播客目录。

通过使用 Uri,您可以轻松地在应用程序或服务提供商之间进行通信,而无需每次询问或提供时都传递真实文件。只需传递一个轻量级的简单 Uri 即可。

你的代码中发生了什么?

如果您想知道代码中发生了什么,请尝试查看参考资料

它说:

允许用户选择目录子树。调用时,系统将显示DocumentsProvider设备上安装的各种实例,让用户浏览它们。应用程序可以完全管理返回目录中的文档。

我不确定您想要实现什么目标(如果可以的话请澄清,以便我可以提供帮助),但我希望我的答案包含足够的信息。