美文网首页需要使用
android Intent打开各种类型文件(PDF、word、

android Intent打开各种类型文件(PDF、word、

作者: yyg | 来源:发表于2018-05-29 21:45 被阅读60次
//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、

    本文链接:https://www.haomeiwen.com/subject/plhzjftx.html