android Intent打开各种类型文件(PDF、word、excel、ppt、chm)

//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获取一个用于打开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获取一个用于打开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获取一个用于打开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获取一个用于打开文本文件的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获取一个用于打开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;   
  }  

对于7.0及以上版本需要结合FileProvider获取正确的uri来设置正确的Intent。
注意:在配置好Intent之后,需要检查否有对应的应用来响应相应的Intent,否则会报错。

 if (mIntent.resolveActivity(getPackageManager()) != null) {
                            startActivity(mIntent);
                        } else {
                            ToastUtils.showShort("没有找到打开文档的应用!");
                        }

你可能感兴趣的:(android Intent打开各种类型文件(PDF、word、excel、ppt、chm))