尽管这是一个简单的问题,但我在 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/