打开pdf ppt word excel chm html text 文件的intent

定义打开pdf的Intent
1./** 
2.    * Get PDF file Intent 
3.    */  
4.   public Intent getPdfFileIntent(String path){  5.    Intent i = new Intent(Intent.ACTION_VIEW);  6.    i.addCategory(Intent.CATEGORY_DEFAULT);  
7.    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK );  
8.    Uri uri = Uri.fromFile(new File(path));  9.    i.setDataAndType(uri, "application/pdf");  10.    return i;  11.}  
打开 
1.btnDownload.setOnClickListener(new View.OnClickListener() {  
2.            public void onClick(View v) {  3.                //You need to open another thread to download file ,   4.                //so that it cannot disturb the main UI thread.   5.                final HttpDownloader loader = new HttpDownloader(getApplicationContext());  6.                int result = loader.download(" http://xxx.pdf", "Tian/", "t0.pdf");  7.                Log.d("PDFActivity.java","Download result: "+result);  8.                if(result == 0 || result == 1){ // Success,open it   9.                    Intent intent = getPdfFileIntent("/mnt/sdcard/Tian/t0.pdf");  10.                    startActivity(intent);  
11.                }  
12.            }  
13.        });  
PS:
Android用于打开各种文件的intent
importAndroid.app.Activity;
importAndroid.content.Intent;
importAndroid.net.Uri;
importAndroid.net.Uri.Builder;
importjava.io.File;
importAndroid.content.Intent;
 
//自定义AndroidIntent类,
//可用于获取打开以下文件的intent
//PDF,PPT,WORD,EXCEL,CHM,HTML,TEXT,AUDIO,VIDEO
 
示例:
//这个不行,可能是因为PDF.apk程序没有权限访问其它APK里的asset资源文件,又或者是路径写错?
//Intentit = getPdfFileIntent(" file:///Android_asset/helphelp.pdf");
//下面这些都OK
//Intentit = getHtmlFileIntent("/mnt/sdcard/tutorial.html");//SD卡主目录
//Intentit = getHtmlFileIntent("/sdcard/tutorial.html");//SD卡主目录,这样也可以
Intent it= getHtmlFileIntent("/system/etc/tutorial.html");//系统内部的etc目录
//Intentit = getPdfFileIntent("/system/etc/helphelp.pdf");
//Intentit = getWordFileIntent("/system/etc/help.doc");
//Intentit = getExcelFileIntent("/mnt/sdcard/Book1.xls")
//Intentit = getPptFileIntent("/mnt/sdcard/download/Android_PPT.ppt");//SD卡的download目录下
//Intentit = getVideoFileIntent("/mnt/sdcard/ice.avi");
//Intentit = getAudioFileIntent("/mnt/sdcard/ren.MP3");
//Intentit = getImageFileIntent("/mnt/sdcard/images/001041580.jpg");
//Intentit = getTextFileIntent("/mnt/sdcard/hello.txt",false);
 
startActivity(it );
 
publicclass 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 = newIntent("Android.intent.action.VIEW");
    intent.setDataAndType(uri,"text/html");
    return intent;
  }
 
//Android获取一个用于打开图片文件的intent
  public static Intent getImageFileIntent(String param )
  {
    Intent intent = newIntent("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( Stringparam )
  {
    Intent intent = newIntent("Android.intent.action.VIEW");
   intent.addCategory("Android.intent.category.DEFAULT");
   intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    Uriuri = Uri.fromFile(new File(param ));
    intent.setDataAndType(uri,"application/pdf");
    return intent;
  }
 
//Android获取一个用于打开文本文件的intent
 public static Intent getTextFileIntent( Stringparam, 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 = newIntent("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( Stringparam )
  {
    Intent intent = newIntent("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 = newIntent("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 = newIntent("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( Stringparam )
  {
    Intent intent = newIntent("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;
  }
}
 
注意:
一定要在Manifest.xml中声明权限:
        <!-- 在SDCard中创建与删除文件权限 -->
        <uses-permissionAndroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
        <!-- 往SDCard写入数据权限-->
        <uses-permissionAndroid:name="android.permission.WRITE_EXTERNAL_STORAGE" />

转载于:https://www.cnblogs.com/dachao/archive/2012/05/28/2520995.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值