博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用系统中已经安装的软件选择文件的打开方式
阅读量:6844 次
发布时间:2019-06-26

本文共 5791 字,大约阅读时间需要 19 分钟。

hot3.png

// 通过指定的路径,打开文件

public static Intent openFile(String filePath) {  File file = new File(filePath);  if (!file.exists())   return null;  /* 取得扩展名 */  String end = file    .getName()    .substring(file.getName().lastIndexOf(".") + 1,      file.getName().length()).toLowerCase();  /* 依扩展名的类型决定MimeType */  if (end.equals("jpg") || end.equals("gif") || end.equals("png")    || end.equals("jpeg") || end.equals("bmp")) {   return getImageFileIntent(filePath);  } else if (end.equals("doc") || end.equals("docx")) {   return getWordFileIntent(filePath);  } else if (end.equals("xls") || end.equals("xlsx")) {   return getExcelFileIntent(filePath);  } else if (end.equals("m4a") || end.equals("mp3") || end.equals("mid")    || end.equals("xmf") || end.equals("ogg") || end.equals("wav")) {   return getAudioFileIntent(filePath);  } else if (end.equals("3gp") || end.equals("mp4")) {   return getAudioFileIntent(filePath);  } else if (end.equals("apk")) {   return getApkFileIntent(filePath);  } else if (end.equals("ppt")) {   return getPptFileIntent(filePath);  } else if (end.equals("pdf")) {   return getPdfFileIntent(filePath);  } else if (end.equals("chm")) {   return getChmFileIntent(filePath);  } else if (end.equals("txt")) {   return getTextFileIntent(filePath, false);  } else {   return getAllIntent(filePath);  } }

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

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

public static Intent getAllIntent(String param) {  Intent intent = new Intent();  intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  intent.setAction(android.content.Intent.ACTION_VIEW);  Uri uri = Uri.fromFile(new File(param));  intent.setDataAndType(uri, "*/*");  return intent; }

// Android获取一个用于打开APK文件的intent

public static Intent getApkFileIntent(String param) {  Intent intent = new Intent();  intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  intent.setAction(android.content.Intent.ACTION_VIEW);  Uri uri = Uri.fromFile(new File(param));  intent.setDataAndType(uri, "application/vnd.android.package-archive");  return intent; }

// Android获取一个用于打开VIDEO文件的intent

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

// Android获取一个用于打开AUDIO文件的intent

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

// Android获取一个用于打开Html文件的intent

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

// 图片的Intent

public static Intent getImageFileIntent(String filePath) {  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(filePath));  intent.setDataAndType(uri, "image/*");  return intent; }

// word文档的Intent

public static Intent getWordFileIntent(String filePath) {  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(filePath));  intent.setDataAndType(uri, "application/msword");  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; }

知行团队,做最好的移动办公

  • @gmail.com;
  • 【安全】保密,你懂的。

转载于:https://my.oschina.net/u/2561871/blog/1570591

你可能感兴趣的文章