Android-使用Intent打开各种文件

1、打开Html文件

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;  
}

2、打开图片文件

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;  
}

3、打开pdf文件

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; 
}

4、打开txt文件

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");    
    }  
}

5、打开音频文件

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;  
}

6、打开视频文件

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;  
}

7、打开chm文件

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;  
}

8、打开word文件

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;  
}

9、打开Excel文件

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;  

}

10、打开ppt文件

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;  
}

Ps:参考资料

  1. 关于Intent的七大属性
  2. Android中Intent概述及使用
  3. Android Intent Action 大全