我有一个包含文件路径的活动(具有未知的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。
但我仍然不知道如何打开文件夹。