【问题标题】:View file path in a file manager as Android intent在文件管理器中查看文件路径作为 Android 意图
【发布时间】:2011-04-04 11:37:44
【问题描述】:

您知道,我已经检查了 Android 开发者文档和 OpenIntents,但没有找到答案。不过,我可能很容易错过了一些东西。

是否有在文件管理器中查看文件路径的意图操作? Android 文件管理器应用程序之间的标准化方式似乎很少。我不希望在执行意图时出现任何异常行为,如果没有安装文件管理器,它应该什么都不做,而不是尝试以其他方式操作文件路径。

我最初的研究表明,目前这可能是不可能的,但我想我会看看是否有人知道得更清楚。他们通常会这样做。

编辑澄清:我不是在寻找文件选择器。我已经有一个文件路径并且想要打开它以便在文件管理器/文件浏览器中浏览,当且仅当设备上安装了一个。

【问题讨论】:

    标签: java android android-intent


    【解决方案1】:

    我有以下...

            Intent intent = new Intent();
            intent.addCategory(Intent.CATEGORY_OPENABLE);
            intent.setType("text/csv");
            intent.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(Intent.createChooser(intent, getText(R.string.select_file)),1);
    

    然后是onActivityResult()

            currFileURI = data.getData();
            filename_editText.setText(currFileURI.getPath());
    

    更新:解决方案:

    public static boolean isUriAvailable(Context context, String uri) {
        Intent test = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
        return context.getPackageManager().resolveActivity(test, 0) != null;
    }
    

    【讨论】:

    • 这看起来像一个文件选择器,这并不是我真正想要的。我想对系统说“这是一个文件路径;在文件管理器应用程序(如 eFile 或 AndExplorer 或其他)中打开它,或者如果你没有安装文件管理器,什么也不做”。
    • 你是对的。这正是它的作用。我只是希望它会给你一个暗示你的答案。对不起,如果它没有帮助。我会看看我是否可以传递一个路径并打开文件管理器。当然,您可以在不要求任何回报的情况下启动文件管理器。
    • 对不起。我有点仓促地判断你的反应,而且几乎可以肯定是我自己的无知阻碍了我。我阅读了您上面的代码,提示用户选择应用程序来选择 CSV 文件。您建议我可以创建一个意图,允许用户选择一个可以选择文件类型的应用程序,然后打开该应用程序。对吗?
    • 看似,但我从未尝试过 :) 您对我的代码所做的假设是 100% 正确的。我在办公室没有我的开发环境,所以我无法尝试我的提议,但我应该认为你可以打开意图而不期望得到任何回报。下一个壮举是开辟一条特定的道路。我认为这一切听起来都很合理。
    • 好的,谢谢。这肯定是比我自己的厄运说不可能的更有希望的途径:-) 我会让你知道它是怎么回事。
    猜你喜欢
    • 2019-08-15
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 1970-01-01
    相关资源
    最近更新 更多