Android--用intent打开各种文件

简介:
[java]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. import android.app.Activity;  
  2. import android.content.Intent;  
  3. import android.net.Uri;  
  4. import android.net.Uri.Builder;  
  5. import java.io.File;  
  6. import android.content.Intent;  
  7. //自定义android Intent类,  
  8. //可用于获取打开以下文件的intent  
  9. //PDF,PPT,WORD,EXCEL,CHM,HTML,TEXT,AUDIO,VIDEO  
  10.   
  11. //错误示例:  
  12. //这个不行,可能是因为PDF.apk程序没有权限访问其它APK里的asset资源文件,又或者是路径写错?  
  13. //Intent it = getPdfFileIntent("file:///android_asset/helphelp.pdf");  
  14.   
  15. //下面这些都OK  
  16. Intent it = getHtmlFileIntent("/mnt/sdcard/tutorial.html");//SD卡主目录  
  17. //Intent it = getHtmlFileIntent("/sdcard/tutorial.html");//SD卡主目录,这样也可以  
  18. //Intent it = getHtmlFileIntent("/system/etc/tutorial.html");//系统内部的etc目录  
  19. //Intent it = getPdfFileIntent("/system/etc/helphelp.pdf");  
  20. //Intent it = getWordFileIntent("/system/etc/help.doc");  
  21. //Intent it = getExcelFileIntent("/mnt/sdcard/Book1.xls")  
  22. //Intent it = getPptFileIntent("/mnt/sdcard/download/Android_PPT.ppt");//SD卡的download目录下  
  23. //Intent it = getVideoFileIntent("/mnt/sdcard/ice.avi");  
  24. //Intent it = getAudioFileIntent("/mnt/sdcard/ren.mp3");  
  25. //Intent it = getImageFileIntent("/mnt/sdcard/images/001041580.jpg");  
  26. //Intent it = getTextFileIntent("/mnt/sdcard/hello.txt",false);  
  27. startActivity( it );  
  28. public class MyIntent {  
  29.     //android获取一个用于打开HTML文件的intent  
  30.     public static Intent getHtmlFileIntent( String param ) {  
  31.         Uri uri = Uri.parse(param ).buildUpon().encodedAuthority("com.android.htmlfileprovider").scheme("content").encodedPath(param ).build();  
  32.         Intent intent = new Intent("android.intent.action.VIEW");  
  33.         intent.setDataAndType(uri, "text/html");  
  34.         return intent;  
  35.     }  
  36.     //android获取一个用于打开图片文件的intent  
  37.     public static Intent getImageFileIntent( String param ) {  
  38.         Intent intent = new Intent("android.intent.action.VIEW");  
  39.         intent.addCategory("android.intent.category.DEFAULT");  
  40.         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
  41.         Uri uri = Uri.fromFile(new File(param ));  
  42.         intent.setDataAndType(uri, "image/*");  
  43.         return intent;  
  44.     }  
  45.     //android获取一个用于打开PDF文件的intent  
  46.     public static Intent getPdfFileIntent( String param ) {  
  47.         Intent intent = new Intent("android.intent.action.VIEW");  
  48.         intent.addCategory("android.intent.category.DEFAULT");  
  49.         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
  50.         Uri uri = Uri.fromFile(new File(param ));  
  51.         intent.setDataAndType(uri, "application/pdf");  
  52.         return intent;  
  53.     }  
  54.     //android获取一个用于打开文本文件的intent  
  55.     public static Intent getTextFileIntent( String param, boolean paramBoolean) {  
  56.         Intent intent = new Intent("android.intent.action.VIEW");  
  57.         intent.addCategory("android.intent.category.DEFAULT");  
  58.         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
  59.         if (paramBoolean) {  
  60.             Uri uri1 = Uri.parse(param );  
  61.             intent.setDataAndType(uri1, "text/plain");  
  62.         } else {  
  63.             Uri uri2 = Uri.fromFile(new File(param ));  
  64.             intent.setDataAndType(uri2, "text/plain");  
  65.         }  
  66.         return intent;  
  67.     }  
  68.     //android获取一个用于打开音频文件的intent  
  69.     public static Intent getAudioFileIntent( String param ) {  
  70.         Intent intent = new Intent("android.intent.action.VIEW");  
  71.         intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  
  72.         intent.putExtra("oneshot"0);  
  73.         intent.putExtra("configchange"0);  
  74.         Uri uri = Uri.fromFile(new File(param ));  
  75.         intent.setDataAndType(uri, "audio/*");  
  76.         return intent;  
  77.     }  
  78.     //android获取一个用于打开视频文件的intent  
  79.     public static Intent getVideoFileIntent( String param ) {  
  80.         Intent intent = new Intent("android.intent.action.VIEW");  
  81.         intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  
  82.         intent.putExtra("oneshot"0);  
  83.         intent.putExtra("configchange"0);  
  84.         Uri uri = Uri.fromFile(new File(param ));  
  85.         intent.setDataAndType(uri, "video/*");  
  86.         return intent;  
  87.     }  
  88.   
  89.     //android获取一个用于打开CHM文件的intent  
  90.     public static Intent getChmFileIntent( String param ) {  
  91.         Intent intent = new Intent("android.intent.action.VIEW");  
  92.         intent.addCategory("android.intent.category.DEFAULT");  
  93.         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
  94.         Uri uri = Uri.fromFile(new File(param ));  
  95.         intent.setDataAndType(uri, "application/x-chm");  
  96.         return intent;  
  97.     }  
  98.   
  99.     //android获取一个用于打开Word文件的intent  
  100.     public static Intent getWordFileIntent( String param ) {  
  101.         Intent intent = new Intent("android.intent.action.VIEW");  
  102.         intent.addCategory("android.intent.category.DEFAULT");  
  103.         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
  104.         Uri uri = Uri.fromFile(new File(param ));  
  105.         intent.setDataAndType(uri, "application/msword");  
  106.         return intent;  
  107.     }  
  108.     //android获取一个用于打开Excel文件的intent  
  109.     public static Intent getExcelFileIntent( String param ) {  
  110.         Intent intent = new Intent("android.intent.action.VIEW");  
  111.         intent.addCategory("android.intent.category.DEFAULT");  
  112.         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
  113.         Uri uri = Uri.fromFile(new File(param ));  
  114.         intent.setDataAndType(uri, "application/vnd.ms-excel");  
  115.         return intent;  
  116.     }  
  117.     //android获取一个用于打开PPT文件的intent  
  118.     public static Intent getPptFileIntent( String param ) {  
  119.         Intent intent = new Intent("android.intent.action.VIEW");  
  120.         intent.addCategory("android.intent.category.DEFAULT");  
  121.         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
  122.         Uri uri = Uri.fromFile(new File(param ));  
  123.         intent.setDataAndType(uri, "application/vnd.ms-powerpoint");  
  124.         return intent;  
  125.     }  
  126. }  


转载:http://blog.csdn.net/chaoyu168/article/details/50778016

目录
相关文章
|
2月前
|
安全 数据库 Android开发
在Android开发中实现两个Intent跳转及数据交换的方法
总结上述内容,在Android开发中,Intent不仅是活动跳转的桥梁,也是两个活动之间进行数据交换的媒介。运用Intent传递数据时需注意数据类型、传输大小限制以及安全性问题的处理,以确保应用的健壯性和安全性。
136 11
|
4月前
|
Android开发 开发者
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
本文详细介绍了如何通过自定义 `attrs.xml` 文件实现 Android 自定义 View 的属性配置。以一个包含 TextView 和 ImageView 的 DemoView 为例,讲解了如何使用自定义属性动态改变文字内容和控制图片显示隐藏。同时,通过设置布尔值和点击事件,实现了图片状态的切换功能。代码中展示了如何在构造函数中解析自定义属性,并通过方法 `setSetting0n` 和 `setbackeguang` 实现功能逻辑的优化与封装。此示例帮助开发者更好地理解自定义 View 的开发流程与 attrs.xml 的实际应用。
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
|
4月前
|
Java Android开发
Android studio中build.gradle文件简单介绍
本文解析了Android项目中build.gradle文件的作用,包括jcenter仓库配置、模块类型定义、包名设置及依赖管理,涵盖本地、库和远程依赖的区别。
374 19
|
4月前
|
存储 XML Java
Android 文件数据储存之内部储存 + 外部储存
简介:本文详细介绍了Android内部存储与外部存储的使用方法及核心原理。内部存储位于手机内存中,默认私有,适合存储SharedPreferences、SQLite数据库等重要数据,应用卸载后数据会被清除。外部存储包括公共文件和私有文件,支持SD卡或内部不可移除存储,需申请权限访问。文章通过代码示例展示了如何保存、读取、追加、删除文件以及将图片保存到系统相册的操作,帮助开发者理解存储机制并实现相关功能。
1027 2
|
7月前
|
移动开发 安全 Java
Android历史版本与APK文件结构
通过以上内容,您可以全面了解Android的历史版本及其主要特性,同时掌握APK文件的结构和各部分的作用。这些知识对于理解Android应用的开发和发布过程非常重要,也有助于在实际开发中进行高效的应用管理和优化。希望这些内容对您的学习和工作有所帮助。
656 83
|
11月前
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
901 1
|
存储 数据库 Android开发
安卓Jetpack Compose+Kotlin,支持从本地添加音频文件到播放列表,支持删除,使用ExoPlayer播放音乐
为了在UI界面添加用于添加和删除本地音乐文件的按钮,以及相关的播放功能,你需要实现以下几个步骤: 1. **集成用户选择本地音乐**:允许用户从设备中选择音乐文件。 2. **创建UI按钮**:在界面中创建添加和删除按钮。 3. **数据库功能**:使用Room数据库来存储音频文件信息。 4. **更新ViewModel**:处理添加、删除和播放音频文件的逻辑。 5. **UI实现**:在UI层支持添加、删除音乐以及播放功能。
|
11月前
|
存储 大数据 数据库
Android经典面试题之Intent传递数据大小为什么限制是1M?
在 Android 中,使用 Intent 传递数据时存在约 1MB 的大小限制,这是由于 Binder 机制的事务缓冲区限制、Intent 的设计初衷以及内存消耗和性能问题所致。推荐使用文件存储、SharedPreferences、数据库存储或 ContentProvider 等方式传递大数据。
436 0
|
11月前
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
587 0

热门文章

最新文章