基于文件类型的Android意图
我正在尝试为Android开发一个文件夹浏览器。。 文件夹可以有任何类型的文件,即doc文件、txt文件、mp3、avi、apk文件等。。 如何根据用户单击的文件启动特定应用程序。。。 我的意思是如何构造基于意图的文件类型。。。 谢谢基于文件类型的Android意图,android,android-intent,mime-types,Android,Android Intent,Mime Types,我正在尝试为Android开发一个文件夹浏览器。。 文件夹可以有任何类型的文件,即doc文件、txt文件、mp3、avi、apk文件等。。 如何根据用户单击的文件启动特定应用程序。。。 我的意思是如何构造基于意图的文件类型。。。 谢谢 Prashanth创建一个活动。在这里,您可以找到文件的扩展名,无论是mp3还是dic等。根据扩展名,您可以调用此活动中的其他活动 谢谢 Deepak只需设置意图的类型,例如:Intent.setType(“video/mpeg”) 编辑:用于动态获取文件的MIM
Prashanth创建一个活动。在这里,您可以找到文件的扩展名,无论是mp3还是dic等。根据扩展名,您可以调用此活动中的其他活动 谢谢
Deepak只需设置意图的类型,例如:
Intent.setType(“video/mpeg”)代码>
编辑:用于动态获取文件的MIME类型。可能是这样的…因为我正在我的代码中尝试它
//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/*");
}
我仍在寻找短代码,但我希望此代码可以帮助您…我找到了一个。也许这可以帮助你:
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);
对于已知的文件类型可以这样做…假设有新的文件类型,例如.rtf,并且用户安装了一些应用程序来显示.rtf文件。。然后我必须重新编写我的应用程序以运行这些文件…不,因为你可以从文件中获取MIME类型;)看我的编辑!你好您能告诉我是否可以根据mime类型显示该文件的预览吗。我的意思是,如果是视频,我想显示预览,如果是pdf,我只想显示一个图标,让用户点击打开它。这是可能的吗?这是可能的,但我很确定你必须自己实现它。我不想在我的应用程序中硬编码基于扩展的活动启动。这不能由系统本身完成。我想使用通用的。因此,在将来的某个时候,如果用户为某个“.abc”扩展安装一个应用程序,然后使用我的应用程序并单击“.abc”文件必须启动该应用程序。。