zoukankan      html  css  js  c++  java
  • Android打开特定文件,例如自动安装APK程序

    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("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("jpg")||end.equals("gif")||end.equals("png")||
        end.equals("jpeg")||end.equals("bmp")){
       return getImageFileIntent(filePath);
      }else if(end.equals("apk")){
       return getApkFileIntent(filePath);
      }else if(end.equals("ppt")){
       return getPptFileIntent(filePath);
      }else if(end.equals("xls")){
       return getExcelFileIntent(filePath);
      }else if(end.equals("doc")){
       return getWordFileIntent(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获取一个用于打开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;
     }

     //Android获取一个用于打开图片文件的intent
     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;
     }

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

    原文出处:http://blog.csdn.net/weich_java/article/details/7002829

  • 相关阅读:
    面试题15:链表中倒数第K个结点
    面试题31:连续子数组的最大和
    数据库索引实例
    面试题27:二叉搜索树与双向链表
    面试题28:字符串的排列
    java比较器Comparable接口和Comaprator接口
    面向对象知识汇总
    虚函数与纯虚函数
    Linux IO实时监控iostat命令详解
    hive GroupBy操作(翻译自Hive wiki)
  • 原文地址:https://www.cnblogs.com/ct732003684/p/2718083.html
Copyright © 2011-2022 走看看