【问题标题】:how to show app list to open a file如何显示应用程序列表以打开文件
【发布时间】:2016-10-18 22:46:52
【问题描述】:

我正在尝试向用户概述可用于打开所选文件的应用程序。以下代码无法正常工作:

String ext = MimeTypeMap.getFileExtensionFromUrl(file2open);

        String mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(ext);

        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_VIEW);
        intent.setDataAndType(Uri.parse(file2open), mime);
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        startActivity(intent);

如果选择 .txt 文件,则会显示一个包含两个应用程序的列表。但没有一个是正确的。如果选择了 .pdf 文件,在我的手机上,将启动一个 pdf 阅读器,但只启动应用程序。该文件未打开。如何显示设备上安装的所有应用的列表以使用户选择一个,例如,如果文件名不包含扩展名?

【问题讨论】:

  • “但没有一个是正确的”——请更详细地解释您的意思。 “文件未打开”——也许其他应用程序没有对此内容的读取权限。或者,file2open 可能无效。 “如何显示设备上安装的所有应用程序的列表以使用户选择一个,例如,如果文件名不包含扩展名?” ——你不能。您需要以某种方式确定该内容的 MIME 类型。

标签: android file


【解决方案1】:

已解决:它是

intent.setDataAndType(Uri.fromFile(f), mime);

代替

intent.setDataAndType(Uri.parse(file2open), mime);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-18
    • 2012-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2023-03-22
    相关资源
    最近更新 更多