1.定义文件类型。
public class MIME { public final static String[][] MIME_MapTable = { {".3gp", "video/3gpp"}, {".apk", "application/vnd.android.package-archive"}, {".asf", "video/x-ms-asf"}, {".avi", "video/x-msvideo"}, {".bin", "application/octet-stream"}, {".bmp", "image/bmp"}, {".c", "text/plain"}, {".class", "application/octet-stream"}, {".conf", "text/plain"}, {".cpp", "text/plain"}, {".doc", "application/msword"}, {".exe", "application/octet-stream"}, {".gif", "image/gif"}, {".gtar", "application/x-gtar"}, {".gz", "application/x-gzip"}, {".h", "text/plain"}, {".htm", "text/html"}, {".html", "text/html"}, {".jar", "application/java-archive"}, {".java", "text/plain"}, {".jpeg", "image/jpeg"}, {".jpg", "image/jpeg"}, {".js", "application/x-javascript"}, {".log", "text/plain"}, {".m3u", "audio/x-mpegurl"}, {".m4a", "audio/mp4a-latm"}, {".m4b", "audio/mp4a-latm"}, {".m4p", "audio/mp4a-latm"}, {".m4u", "video/vnd.mpegurl"}, {".m4v", "video/x-m4v"}, {".mov", "video/quicktime"}, {".mp2", "audio/x-mpeg"}, {".mp3", "audio/x-mpeg"}, {".mp4", "video/mp4"}, {".mpc", "application/vnd.mpohun.certificate"}, {".mpe", "video/mpeg"}, {".mpeg", "video/mpeg"}, {".mpg", "video/mpeg"}, {".mpg4", "video/mp4"}, {".mpga", "audio/mpeg"}, {".msg", "application/vnd.ms-outlook"}, {".ogg", "audio/ogg"}, {".pdf", "application/pdf"}, {".png", "image/png"}, {".pps", "application/vnd.ms-powerpoint"}, {".ppt", "application/vnd.ms-powerpoint"}, {".prop", "text/plain"}, {".rar", "application/x-rar-compressed"}, {".rc", "text/plain"}, {".rmvb", "audio/x-pn-realaudio"}, {".rtf", "application/rtf"}, {".sh", "text/plain"}, {".tar", "application/x-tar"}, {".tgz", "application/x-compressed"}, {".txt", "text/plain"}, {".wav", "audio/x-wav"}, {".wma", "audio/x-ms-wma"}, {".wmv", "audio/x-ms-wmv"}, {".wps", "application/vnd.ms-works"}, {".xml", "text/plain"}, {".xls", "application/vnd.ms-excel"}, {".z", "application/x-compress"}, {".zip", "application/zip"}, {"", "*/*"} }; }
2.获取需要打开的文件的类型。
private String getMIMEType(File file) { String type = "*/*"; String filename = file.getName(); int dotindex = filename.lastIndexOf("."); if (dotindex < 0) { return type; } String end = filename.substring(dotindex, filename.length()).toLowerCase(); if (end == "") { return type; } for (int i = 0; i < MIME.MIME_MapTable.length; i++) { if (end.equals(MIME.MIME_MapTable[i][0])) { type = MIME.MIME_MapTable[i][1]; } } return type; }
3.打开文件。
File mOpenFile = new File(MainActivity.mPathList.get(mCurOperationFileIndex)); Intent intentopen = new Intent(); intentopen.setAction(Intent.ACTION_VIEW); // intentopen.addCategory("android.intent.category.DEFAULT"); intentopen.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); String type = getMIMEType(mOpenFile); intentopen.setDataAndType(Uri.fromFile(mOpenFile), type); try { startActivity(intentopen); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); }
相关推荐
在Android平台上,开发一款能指定打开或存储文件和文件夹的应用是相当常见的需求。这个程序设计的核心在于提供一个用户友好的界面,允许用户选择特定的文件或目录,并且能够被其他应用程序调用,以实现文件操作功能...
在Android应用开发中,文件上传和文件选择器是常见的功能需求。用户可能需要从设备存储中选择一个或多个文件,例如图片、文档或音频文件,然后上传到服务器或进行其他操作。本文将深入探讨如何在Android平台上实现...
如果使用`startActivityForResult()`,需要重写`onActivityResult()`方法,处理打开文件后的返回结果。如果用户成功打开了文件,可以在此处理相关逻辑。 9. **UI设计**: 设计一个友好的用户界面,包括文件列表的...
在Android开发中,创建一个用于打开文件的对话框是常见的需求,这通常涉及到用户选择本地存储中的文件,然后应用可以读取或操作这些文件。在这个场景下,`android dialog` 是关键,它允许我们向用户提供交互式的界面...
Unity 调用Android文件资源管理器,可以选择Android手机上的图片,视频等一些列文件,并且获得相关的文件路径。直接导入Unity即可运行。测试已经通过
1. **使用TOpenDialog和TSaveDialog**:Delphi的FireMonkey框架提供了`TOpenDialog`和`TSaveDialog`组件,它们可以用于打开和保存文件。在Android上,它们会呈现一个类似系统风格的对话框供用户选择文件。 2. **...
除了上述基本步骤,还可以根据实际需求进行一些扩展,比如添加FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET标志,以确保打开文件的Activity在任务栈顶部,或者设置FLAG_ACTIVITY_NEW_TASK,使得在没有上下文时也能启动...
OpenDialog是Delphi中的一个标准组件,主要用于打开文件或保存文件的交互过程。在Android平台上,OpenDialog组件允许用户选择本地存储的文件,实现文件的打开或保存功能。 2. **升级到XE10.3的挑战** 当从Delphi ...
Android7.0 Intent打开文件管理器 获取文件真实路径。虽然网上很多demo,但是没有一个能够兼容所有Android机的,去网上学习了然后自己亲测过手机分别有Android7.0/6.0/4.3个版本。
在Android平台上,开发一个能够打开文件目录并以列表形式显示的程序是一项常见的任务。这个程序的核心功能是允许用户浏览和选择存储设备上的文件或目录,然后返回所选文件的完整路径。下面将详细讨论实现这一功能所...
这个过程通常涉及调用系统内置的软件打开文件,这可以通过Intent对象来完成。以下是对给定代码的详细解释: 首先,我们创建一个新的Intent实例,这是Android中用于启动活动或服务的一种方式。在本例中,我们使用...
这里提到的"android打开excel源码"很可能是利用了Apache POI库,这是一个Java API,专门用来处理微软的Office文件格式,包括xls和xlsx。 在Android 2.3.3(Gingerbread)版本上实现这个功能,需要注意以下关键步骤...
标题与描述中的关键词“android用于打开各种文件的intent”揭示了本文将探讨的主题:在Android平台上,如何使用Intent机制来启动应用程序以打开不同类型的文件。Intent是Android四大组件之一,它提供了一种方式来...
在这个“利用Android原生API打开文件demo”中,我们将深入探讨如何使用Android的原生API来创建这样一个功能。 首先,Android提供了一个名为`Intent`的机制,它允许应用程序之间进行通信。在文件选择的情境下,我们...
- 如果不希望集成PDF阅读器库,还可以利用Android的Intent系统,启动系统中已安装的PDF阅读器应用来打开文件。创建一个`Intent`,设置其类型为`application/pdf`,然后使用`FileProvider`提供文件的Uri,最后用`...
在Android平台上,实现一个文件管理器涉及到多个关键知识点,这些知识点包括但不限于文件系统的理解、Android权限管理、Intent机制、URI转换以及自定义文件选择器。下面我们将深入探讨这些内容。 首先,Android文件...
Android 中使用 Intent 打开各种文件类型 Android 操作系统提供了 Intent 机制,允许应用程序之间进行交互和通信。Intent 是一个异步的消息机制,用于在应用程序之间请求或提供服务。通过使用 Intent,可以实现打开...
android 系统调用WPS打开word excel ppt pdf 等,将代码类移入的你项目,有对6.0 7.0及以上系统做文件读取方法
在Android平台上,打开本地PDF文件是一项常见的需求,尤其在阅读文档、查看电子书籍或处理业务资料时。在本文中,我们将探讨如何使用第三方库`android-pdfview`来实现这一功能。`android-pdfview`是一个轻量级且高效...
综上所述,Android打开手机文件涉及到Intent、权限管理、FileProvider、文件选择对话框的实现等多个方面。开发者需要根据具体需求,合理运用这些知识点来创建功能完善的文件操作体验。在实际项目中,通常还需要考虑...