我正在尝试为Android开发文件夹浏览器.. 一个文件夹可以有任何类型的文件,即doc文件,txt文件,mp3,avi,apk文件等等。 如何基于用户单击的文件启动特定应用程序... 我的意思是我如何构建基于文件类型的意图... 谢谢 普拉香特
答案 0 :(得分:2)
只需设置Intent的类型,例如:intent.setType("video/mpeg");
。
编辑:使用MimeTypeMap动态获取文件的MIME类型。
答案 1 :(得分:0)
创建一项活动。在哪里可以找到文件的扩展名,无论是mp3还是dic等。根据扩展名调用此活动的其他活动。
由于 迪帕克
答案 2 :(得分:0)
可能是这样的...因为我在我的代码上尝试...
//differentiate file type
String filename = o.getName();
String filenameArray[] = filename.split("\\.");
String extension = filenameArray[filenameArray.length-1];
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
if (extension.contains("png") || extension.contains("gif") || extension.contains("jpg")
|| extension.contains("jpeg") || extension.contains("bmp"))
{
intent.setDataAndType(Uri.parse("file://" + o.getPath()), "image/*");
}
if (extension.contains("txt") || extension.contains("csv") || extension.contains("xml"))
{
intent.setDataAndType(Uri.parse("file://" + o.getPath()), "text/*");
}
if (extension.contains("pdf"))
{
intent.setDataAndType(Uri.parse("file://" + o.getPath()), "application/pdf");
}
if (extension.contains("doc") || extension.contains("docx"))
{
intent.setDataAndType(Uri.parse("file://" + o.getPath()), "application/msword");
}
if (extension.contains("mp3") || extension.contains("wav") || extension.contains("oog")
|| extension.contains("mid") || extension.contains("amr") || extension.contains("midi"))
{
intent.setDataAndType(Uri.parse("file://" + o.getPath()), "audio/*");
}
if (extension.contains("mpeg") || extension.contains("3gp"))
{
intent.setDataAndType(Uri.parse("file://" + o.getPath()), "video/*");
}
我仍在寻找短代码,但我希望这段代码可以帮助你...
答案 3 :(得分:0)
Intent intent= new Intent();
intent.setAction(Intent.ACTION_VIEW);
File file = new File(filePath);
MimeTypeMap mime = MimeTypeMap.getSingleton();
String ext = file.getName().substring(file.getName().indexOf(".")+1);
String type = mime.getMimeTypeFromExtension(ext);
intent.setDataAndType(Uri.fromFile(file), type);