Open Any type of file with Default Intent

2 votes · 5 comments

Here i providing you code for open any type of file using default intent in Android.

To open file:

File myFile = new File("your any type of file url");
FileOpen.openFile(mContext, myFile);
raw ·
copy
· download
public class FileOpen { public static void openFile(Context context, File url) throws IOException { // Create URI File file=url; Uri uri = Uri.fromFile(file); Intent intent = new Intent(Intent.ACTION_VIEW); // Check what kind of file you are trying to open, by comparing the url with extensions. // When the if condition is matched, plugin sets the correct intent (mime) type, // so Android knew what application to use to open the file if (url.toString().contains(".doc") || url.toString().contains(".docx")) { // Word document intent.setDataAndType(uri, "application/msword"); } else if(url.toString().contains(".pdf")) { // PDF file intent.setDataAndType(uri, "application/pdf"); } else if(url.toString().contains(".ppt") || url.toString().contains(".pptx")) { // Powerpoint file intent.setDataAndType(uri, "application/vnd.ms-powerpoint"); } else if(url.toString().contains(".xls") || url.toString().contains(".xlsx")) { // Excel file intent.setDataAndType(uri, "application/vnd.ms-excel"); } else if(url.toString().contains(".zip") || url.toString().contains(".rar")) { // WAV audio file intent.setDataAndType(uri, "application/x-wav"); } else if(url.toString().contains(".rtf")) { // RTF file intent.setDataAndType(uri, "application/rtf"); } else if(url.toString().contains(".wav") || url.toString().contains(".mp3")) { // WAV audio file intent.setDataAndType(uri, "audio/x-wav"); } else if(url.toString().contains(".gif")) { // GIF file intent.setDataAndType(uri, "image/gif"); } else if(url.toString().contains(".jpg") || url.toString().contains(".jpeg") || url.toString().contains(".png")) { // JPG file intent.setDataAndType(uri, "image/jpeg"); } else if(url.toString().contains(".txt")) { // Text file intent.setDataAndType(uri, "text/plain"); } else if(url.toString().contains(".3gp") || url.toString().contains(".mpg") || url.toString().contains(".mpeg") || url.toString().contains(".mpe") || url.toString().contains(".mp4") || url.toString().contains(".avi")) { // Video files intent.setDataAndType(uri, "video/*"); } else { //if you want you can also define the intent type for any other file //additionally use else clause below, to manage other unknown extensions //in this case, Android will show all applications installed on the device //so you can choose which application to use intent.setDataAndType(uri, "*/*"); } intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } }
Add a comment

5 Comments

Please change following code

else if(url.toString().contains(".zip") || url.toString().contains(".rar"))  {
            // ZIP Files
            intent.setDataAndType(uri, "application/zip");
        }

instead of

else if(url.toString().contains(".zip") || url.toString().contains(".rar")) {
            // WAV audio file
            intent.setDataAndType(uri, "application/x-wav");
        }
Reply · April 28, 2014, 5:34 a.m.

Thanks Pratik... this is helpful

Reply · Aug. 6, 2014, 8:18 a.m.

Hey Pratik, I have various documents (.doc, .ppt, .pdf, .xls etc) on my server, I just want to open those documents in my android app, I have tried with Google Doc Viewer url which will open in webView, but it has some limitations like bandwidth limitation, thats why i am stuck. will you please help me for opening those documents using server urls into my android application? Please help me. Thanks in Advance

-Shailesh H. Vishwase

Reply · Sept. 29, 2014, 5:39 a.m.

You can do it easily with

MimeTypeMap.getSingleton().getMimeTypeFromExtension()

Reply · Nov. 12, 2014, 1:39 p.m.

Thank You soooooooo much .... really it's helpful

for(;;;){ system.out.print("Thank You") }

Reply · Nov. 13, 2014, 11:26 a.m.