【问题标题】:remove bug report option from file picker - File Picker Intent - android从文件选择器中删除错误报告选项 - 文件选择器意图 - android
【发布时间】:2016-10-12 14:14:34
【问题描述】:

我已经创建了 Intent 来选择像这样的任何文件:

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");

之后我添加了以下行以仅选择本地文件并删除不相关的应用程序,例如 Drive 等

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
    intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
}

之后我为单个文件选择添加了以下几行

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
    intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, false);
}

之后我添加了以下行以删除不相关的应用程序,例如联系人或任何其他

intent.addCategory(Intent.CATEGORY_OPENABLE);

终于

context.startActivityForResult(intent, REQUEST_PICK_ANY_FILE);

问题 1: android 中的默认文件选择器仍然显示“错误报告”选项,我该如何删除该选项。 (在 Nexus 5x - android 7 中测试)

问题 2: 文件选择器显示隐藏文件,我如何启用或禁用隐藏文件以便启用或禁用它的选择(在 Nexus 5x - android 7 中测试)

【问题讨论】:

  • “我已经创建了选择任何文件的意图”——Intent 没有选择文件。它允许用户从可用的ACTION_GET_CONTENT 支持活动中选择一段内容。如果您想要选择一个文件,并且想要将演示文稿控制到您想要的级别,请将a file-chooser library 添加到您的应用中。
  • 感谢 CommonsWare,我不想实现任何库。我优先考虑默认的 android 系统功能。你能告诉我如何创建意图,以便可以选择任何本地文件,如 txt、html、xml、apk、pdf、音频、视频任何本地文件。我不想被选中的东西,比如联系人、错误报告或任何其他不相关的文件。
  • “你能告诉我如何创建意图,以便可以选择任何本地文件,如 txt、html、xml、apk、pdf、音频、视频任何本地文件”——没有这样的Intent。 Android 专注于来自任意位置的内容,而不是文件系统上的文件。要么使用库,创建自己的文件浏览 UI,不要将自己局限于文件(并接受 ACTION_GET_CONTENT 的其他功能),或者从你的应用程序中删除此功能。
  • 谢谢,如果用户选择错误报告文件而不是我在 onActivityResult() 中获取路径,例如“content://com.android.shell.documents/document/bugreport%3Adumpstate_log-2016-09-21 -08-06-57-4461.txt”。如何将其转换为 File 对象。
  • 你没有。 ACTION_GET_CONTENT 返回的任何内容都必须是文件。您会注意到操作名称不是ACTION_GET_FILE。如果您收到Uri,就像发送给onActivityResult()consume the content from the Uri properly 的那些(例如ContentResolveropenInputStream())。

标签: android android-intent filepicker


【解决方案1】:

正如CommonsWare 评论的那样,正确的答案是, 没有这样的意图。 Android 专注于来自任意位置的内容,而不是文件系统上的文件。要么使用库,要么创建自己的文件浏览 UI。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多