【问题标题】:Select File from file manager via Intent通过 Intent 从文件管理器中选择文件
【发布时间】:2015-12-27 13:25:40
【问题描述】:

我想做的事:

我想将路径作为文件的字符串获取,我通过 Android 文件管理器选择。

我有什么:

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
startActivityForResult(Intent.createChooser(intent, "Open with ..."), FILE_SELECT_CODE);

这段代码对我来说几乎可以正常工作,但有一个问题。我只能使用以下应用选择我的文件:

我的问题:

是否有人有通过 Android 文件管理器选择任何文件的有效代码?

【问题讨论】:

  • “但有一个问题:我只能使用以下应用程序选择我的文件” - 为什么会出现问题? “有人有通过 Android 文件管理器选择任何文件的工作代码吗?” -- Android 没有 文件管理器。最接近的是 the Storage Access Framework,在 API 级别 19+ 上可用。
  • 这是个问题,因为我也想发送 .pdf 或类似的文件,所以我需要使用文件管理器而不是图库

标签: android file android-intent


【解决方案1】:

你可以用这个:

Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*"); 
startActivityForResult(intent, REQUEST_CODE);

三星设备打开文件管理器使用这个:

Intent intent = new Intent("com.sec.android.app.myfiles.PICK_DATA");
intent.putExtra("CONTENT_TYPE", "*/*");
intent.addCategory(Intent.CATEGORY_DEFAULT);

更多参考结帐http://developer.android.com/guide/topics/providers/document-provider.html

【讨论】:

  • 你添加了intent.setType("/"); ?
  • 您是否在清单中授予了写入和读取外部存储权限,如果问题仍然存在,请发布您的 logcat
  • 天哪,我很抱歉,现在它没有崩溃,但仍然无法通过我的文件管理器选择文件,我经常使用
  • 现在有什么问题?
  • 我想选择我的文件不是用画廊或类似的东西,而是用我的文件浏览器,因为我也想选择 pdf 等等......但我不能在 Intent 中选择我的文件浏览器.看这里:i.imgur.com/yFW6weD.png
【解决方案2】:

所以对于我的三星设备来说,这是可行的:

Intent intent = new Intent("com.sec.android.app.myfiles.PICK_DATA");
intent.putExtra("CONTENT_TYPE", "*/*");
intent.addCategory(Intent.CATEGORY_DEFAULT);
startActivityForResult(intent, FILE_SELECT_CODE);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-25
    • 2020-04-16
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 2021-07-26
    相关资源
    最近更新 更多