【问题标题】:How to simply open directory/folder?如何简单地打开目录/文件夹?
【发布时间】:2017-05-27 11:26:09
【问题描述】:

在阅读我需要的内容之前,不要将其标记为重复。

我见过很多类似的话题,但我都没有找到解决方案。 我需要最简单的东西:在我的应用程序中,我有“查看媒体文件”按钮。单击该按钮后,我需要打开(使用内置文件资源管理器)这个目录 - SD_CARD/my_folder 媒体文件在哪里(我想点击其中任何一个,它们应该在默认媒体播放器)..

我在 SO 上使用了所有建议的答案,如下所示:

    Intent intent = new Intent(Intent.ACTION_VIEW);
    Uri mydir = Uri.parse("/sdcard/Recorder_Videos");
    intent.setDataAndType(mydir, "*/*");
    startActivity(intent);

但他们所做的一切:点击按钮后,它会打开“选择文件”菜单: (点击时我仍然无法播放媒体文件)

【问题讨论】:

  • 删除选择器从代码中删除Intent.createChooser
  • 设备上不需要默认文件浏览器。这是完全可选的。
  • Uri.parse(location); ??? location 的值是多少?如果我们甚至看不到您想要的路径,您怎么能抱怨它选择root!? (with built-in File Explorer) ???那会是什么?
  • 你显示文件选择意图打开,那是什么问题?

标签: android


【解决方案1】:

我找到的解决方案(不完整)是我缺少file:// 前缀。这是我的解决方案(但是,它在第​​一视图中显示了各种应用程序):

public void openFolder(String location)
{
    // location = "/sdcard/my_folder";
    Intent intent = new Intent(Intent.ACTION_VIEW);
    Uri mydir = Uri.parse("file://"+location);
    intent.setDataAndType(mydir,"application/*");    // or use */*
    startActivity(intent);
}

附言奇怪和令人惊讶,但在现有的 Android 系统中不存在“文件浏览器”的标准定义(除非你安装了第 3 方“文件浏览器”).. 这就是为什么 "resource/folder" 默认情况下 mime-type 不起作用..

但是,让我们说一个简单的事实。文件浏览器是任何操作系统系统的一个简单而重要的部分。这对 Android 来说是非常不尊重的,说这不是他们的工作,并将责任推给 3rd 方应用程序。

【讨论】:

    【解决方案2】:

    您可以使用DocumentsContract.Document.MIME_TYPE_DIR 类型,它可以在多个设备上运行并启动文件资源管理器。您可以参考此SO 了解更多详情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-18
      • 1970-01-01
      • 1970-01-01
      • 2013-10-24
      • 2013-03-18
      • 2015-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多