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,VIDEOpublic 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 paramString, 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");    }    while (true)    {      return intent;      Uri uri2 = Uri.fromFile(new File(param ));      intent.setDataAndType(uri2, "text/plain");    }  }      //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;  } }

解决方案 »


  1. 是啊,传两个参数data和type就行了
      

  2. 给个精简后的程序啊 。
    楼主,直接添加JAVA格式的文件,好看点。
      

  3. 这个代码太复杂了,直接把一个枚举TYPE传进来就完了。
      

  4. 请问有没有关于 关闭PDF文件的intent 啊有的话麻烦告诉我一下 我邮箱[email protected] , 谢谢
      

  5. 可以先判断文件类型
    //打开word为例
    Intent intent = new Intent();       
    intent = FileIntent.getWordFileIntent("文件路径");
    startActivity( intent );
      

  6. 如何打开?    startActivity(intent)???  要使用哪个Activity打开?
      

  7. 还好,原来这样打开的,,只是不知道怎么导出这些文件比如导出pdf
      

类似问题 »