欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android实现打开各种文件的intent方法小结

程序员文章站 2024-03-07 14:44:57
本文实例讲述了android实现打开各种文件的intent方法。分享给大家供大家参考,具体如下: import android.app.activity; im...

本文实例讲述了android实现打开各种文件的intent方法。分享给大家供大家参考,具体如下:

import android.app.activity;
import android.content.intent;
import android.net.uri;
import android.net.uri.builder;
import java.io.file;
import android.content.intent;
//自定义android intent类,
//可用于获取打开以下文件的intent
//pdf,ppt,word,excel,chm,html,text,audio,video

示例:

//这个不行,可能是因为pdf.apk程序没有权限访问其它apk里的asset资源文件,又或者是路径写错?
//intent it = getpdffileintent("file:///android_asset/helphelp.pdf");
//下面这些都ok
//intent it = gethtmlfileintent("/mnt/sdcard/tutorial.html");//sd卡主目录
//intent it = gethtmlfileintent("/sdcard/tutorial.html");//sd卡主目录,这样也可以
intent it = gethtmlfileintent("/system/etc/tutorial.html");//系统内部的etc目录
//intent it = getpdffileintent("/system/etc/helphelp.pdf");
//intent it = getwordfileintent("/system/etc/help.doc");
//intent it = getexcelfileintent("/mnt/sdcard/book1.xls")
//intent it = getpptfileintent("/mnt/sdcard/download/android_ppt.ppt");//sd卡的download目录下
//intent it = getvideofileintent("/mnt/sdcard/ice.avi");
//intent it = getaudiofileintent("/mnt/sdcard/ren.mp3");
//intent it = getimagefileintent("/mnt/sdcard/images/001041580.jpg");
//intent it = gettextfileintent("/mnt/sdcard/hello.txt",false);
startactivity( it );
public class myintent
{
//android获取一个用于打开html文件的intent
 public static intent gethtmlfileintent( string param )
 {
  uri uri = uri.parse(param ).buildupon().encodedauthority("com.android.htmlfileprovider").scheme("content").encodedpath(param ).build();
  intent intent = new intent("android.intent.action.view");
  intent.setdataandtype(uri, "text/html");
  return intent;
 }
//android获取一个用于打开图片文件的intent
 public static intent getimagefileintent( string param )
 {
  intent intent = new intent("android.intent.action.view");
  intent.addcategory("android.intent.category.default");
  intent.addflags(intent.flag_activity_new_task);
  uri uri = uri.fromfile(new file(param ));
  intent.setdataandtype(uri, "image/*");
  return intent;
 }
 //android获取一个用于打开pdf文件的intent
 public static intent getpdffileintent( string param )
 {
  intent intent = new intent("android.intent.action.view");
  intent.addcategory("android.intent.category.default");
  intent.addflags(intent.flag_activity_new_task);
  uri uri = uri.fromfile(new file(param ));
  intent.setdataandtype(uri, "application/pdf");
  return intent;
 }
//android获取一个用于打开文本文件的intent
 public static intent gettextfileintent( string param, boolean paramboolean)
{
 intent intent = new intent("android.intent.action.view");
 intent.addcategory("android.intent.category.default");
 intent.addflags(intent.flag_activity_new_task);
 if (paramboolean)
 {
uri uri1 = uri.parse(param );
intent.setdataandtype(uri1, "text/plain");
 }
 else
 {
uri uri2 = uri.fromfile(new file(param ));
intent.setdataandtype(uri2, "text/plain");
 }
 return intent;
}
//android获取一个用于打开音频文件的intent
 public static intent getaudiofileintent( string param )
 {
  intent intent = new intent("android.intent.action.view");
  intent.addflags(intent.flag_activity_clear_top);
  intent.putextra("oneshot", 0);
  intent.putextra("configchange", 0);
  uri uri = uri.fromfile(new file(param ));
  intent.setdataandtype(uri, "audio/*");
  return intent;
 }
 //android获取一个用于打开视频文件的intent
 public static intent getvideofileintent( string param )
 {
  intent intent = new intent("android.intent.action.view");
  intent.addflags(intent.flag_activity_clear_top);
  intent.putextra("oneshot", 0);
  intent.putextra("configchange", 0);
  uri uri = uri.fromfile(new file(param ));
  intent.setdataandtype(uri, "video/*");
  return intent;
 }
 //android获取一个用于打开chm文件的intent
 public static intent getchmfileintent( string param )
 {
  intent intent = new intent("android.intent.action.view");
  intent.addcategory("android.intent.category.default");
  intent.addflags(intent.flag_activity_new_task);
  uri uri = uri.fromfile(new file(param ));
  intent.setdataandtype(uri, "application/x-chm");
  return intent;
 }
//android获取一个用于打开word文件的intent
 public static intent getwordfileintent( string param )
 {
  intent intent = new intent("android.intent.action.view");
  intent.addcategory("android.intent.category.default");
  intent.addflags(intent.flag_activity_new_task);
  uri uri = uri.fromfile(new file(param ));
  intent.setdataandtype(uri, "application/msword");
  return intent;
 }
//android获取一个用于打开excel文件的intent
 public static intent getexcelfileintent( string param )
 {
  intent intent = new intent("android.intent.action.view");
  intent.addcategory("android.intent.category.default");
  intent.addflags(intent.flag_activity_new_task);
  uri uri = uri.fromfile(new file(param ));
  intent.setdataandtype(uri, "application/vnd.ms-excel");
  return intent;
 }
//android获取一个用于打开ppt文件的intent
 public static intent getpptfileintent( string param )
 {
  intent intent = new intent("android.intent.action.view");
  intent.addcategory("android.intent.category.default");
  intent.addflags(intent.flag_activity_new_task);
  uri uri = uri.fromfile(new file(param ));
  intent.setdataandtype(uri, "application/vnd.ms-powerpoint");
  return intent;
 }
}

更多关于android相关内容感兴趣的读者可查看本站专题:《android控件用法总结》、《android视图view技巧总结》、《android文件操作技巧汇总》、《android操作sqlite数据库技巧总结》、《android操作json格式数据技巧总结》、《android数据库操作技巧总结》、《android编程之activity操作技巧总结》、《android编程开发之sd卡操作方法汇总》、《android开发入门与进阶教程》及《android资源操作技巧汇总

希望本文所述对大家android程序设计有所帮助。