利用系統中已經安裝的軟件選擇文件的打開方式

// 經過指定的路徑,打開文件html

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獲取一個用於打開文本文件的intentjava

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文件的intentandroid

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文件的intentapp

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文件的intentide

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文件的intentui

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

知行團隊,作最好的移動辦公

相關文章
相關標籤/搜索