在其他应用中打开文件和文件夹

时间:2014-02-09 21:21:00

标签: android

我有一个包含文件路径的活动(具有未知的mime类型)。 我有2个按钮。应该在用户选择的文件管理器中打开文件夹。 另一个应该在适合文件类型的应用程序中打开该文件。 单击按钮工作。 openFolder让我选择一个文件管理器:使用androzip或root explorer将我带到sdcard但astro要我选择一个文件,好像我将文件上传到oneclickhoster。 OpenFile没有给我任何选择,但打开了一个十六进制编辑器,unfortunatli说该文件为“null”。

public void openFolder(View v)
{
    File f=new File(path);
    if(f.exists())
    {
        String folder=f.getAbsolutePath().replace("/"+f.getName(),"")+"/";
        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        Uri uri = Uri.parse(folder);
        intent.setDataAndType(uri, "file/*");
        startActivity(Intent.createChooser(intent, "Open folder"));

    }

}

public void openFile(View v)
{
    File f=new File(path);
    if(f.exists())
    {
        //example for path: path=/storage/sdcard0/test.mp3
        Intent intent = new Intent(Intent.ACTION_EDIT); 
        Uri uri = Uri.parse("file:/"+path); 
        intent.setDataAndType(uri, getMIME()); 
        startActivity(Intent.createChooser(intent, "Open file"));
    }

}

private String getMIME()
{
    String type =null;
    String extension = MimeTypeMap.getFileExtensionFromUrl(path);
    if (extension != null) {
        MimeTypeMap mime = MimeTypeMap.getSingleton();
        type = mime.getMimeTypeFromExtension(extension);
    } 
    if(type.equals("") || type == null) 
        return "UNKNOWN";
    else
        return type;

}
编辑:打开文件的问题是Intent.ACTION_EDIT,它应该是Intent.ACTION_VIEW。 但我仍然不知道如何打开文件夹。

0 个答案:

没有答案