如何解决Android意向基于文件类型
| 我正在尝试为Android开发文件夹浏览器。 文件夹可以具有任何类型的文件,即doc文件,txt文件,mp3,avi,apk文件等。 如何基于用户单击的文件启动特定的应用程序... 我的意思是我如何构造基于意图的文件类型... 谢谢 普拉珊斯解决方法
只需设置意图的类型,例如:
intent.setType(\"video/mpeg\");
。
编辑:使用MimeTypeMap动态获取文件的MIME类型。
,创建一个活动。您将在其中找到文件扩展名(无论是mp3还是dic等)。基于扩展名,请调用此活动的另一个活动。
谢谢
迪帕克
,我找到一个。也许这可以帮助您:
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);
,可能是这样...因为我正在我的代码上尝试...
//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/*\");
}
我仍在寻找短代码,但我希望这段代码可以帮助您...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。