【问题标题】:Open file with default applications in android在android中使用默认应用程序打开文件
【发布时间】:2015-05-08 18:59:17
【问题描述】:

我正在 android 中制作文件资源管理器。因此,我希望在单击目录以外的任何文件时,我想获得可以打开它的应用程序的建议,如果没有应用程序,则显示一个dailog。我尝试了一些解决方案,但没有任何效果,所以,现在,我只是显示文件不是 toast 中的目录

这里是部分代码:

protected void onListItemClick(ListView l, View v, int position, long id) {
    String filename = (String) getListAdapter().getItem(position);
    if (path.endsWith(File.separator)) {
        filename = path + filename;
    } else {
        filename = path + File.separator + filename;
    }
    if (new File(filename).isDirectory()) {
        Intent intent = new Intent(this, ListFileActivity.class);
        intent.putExtra("path", filename);
        startActivity(intent);
    } else {
        Toast.makeText(this, filename + " is not a directory", Toast.LENGTH_LONG).show();
    }
}

【问题讨论】:

  • “我尝试了一些解决方案,但没有任何效果”——我们应该如何帮助您处理您没有向我们展示的代码?

标签: java android android-intent


【解决方案1】:

Android 有一些内置的Intent Action Type 可以帮助您打开或查看特定文件,但为此您需要知道要处理的文件类型。

假设如果您的文件类型按文档类型分类,您可以使用,

ACTION_OPEN_DOCUMENT 带有特定的MIME_TYPE(Android 4.4 或更高版本)

或者如果你要处理一些媒体文件(音频/视频)

你可以使用,

ACTION_VIEW

要识别特定文件的MIME_TYPE,可以使用函数

guessContentTypeFromName (String url)Link

getMimeTypeFromExtension(String extension)Link

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多