android - 什么是 com.android.externalstorage?

标签 android xamarin xamarin.android android-file

尽管这是一个简单的问题,但我在 google 上找不到答案。或stackoverflow .

当我使用以下代码时,我得到这个结果 //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);

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

最佳答案

Android 存储如何工作?

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

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

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

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

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

您的代码中发生了什么?

如果您想知道代码中发生了什么,请尝试查看 Reference .

它说:

Allow the user to pick a directory subtree. When invoked, the system will display the various DocumentsProvider instances installed on the device, letting the user navigate through them. Apps can fully manage documents within the returned directory.

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

关于android - 什么是 com.android.externalstorage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51005727/

相关文章:

ios - 错误 ITMS-90474 : "Invalid Bundle. iPad 多任务支持需要这些方向:

xamarin - 具有透明背景的 PushModalAsync Xamarin 表单

c# - Xamarin Android MvvmCross 绑定(bind) facebook 登录按钮

android - Intent 未从联系人应用传递

android - 如何将 watch apk嵌入手机apk?

android - BroadCastReceiver 中的异步任务

xaml - Xamarin.Forms 工具栏项目图标大小

AOSP 的 Android 设备配置

c# - fragment 内的 MVVMCross-Android 动态 fragment 并管理每个 fragment 的导航堆栈

c# - Xamarin 项目中的混淆