美文网首页需要使用
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