注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

和申的个人主页

专注于java开发,1985wanggang

 
 
 

日志

 
 

apk安装法之三--"application/vnd.android.package-archive"是什么?  

2015-08-27 10:51:07|  分类: 安卓 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
http://blog.csdn.net/heikefangxian23/article/details/38582261


在第二篇中讲明了调用

  1. Intent i = new Intent(Intent.ACTION_VIEW);  
  2.         i.setDataAndType(Uri.parse("file://" + apkfile.toString()), "application/vnd.android.package-archive");   
  3.         mContext.startActivity(i);  
可以自动安装一个apk应用。


但这里

  1. "application/vnd.android.package-archive"究竟是什么呢?  
  1. </pre><pre name="code" class="java">具体看下面这段代码  
  1. <pre name="code" class="java">/** 
  2.  * 打开文件 
  3.  * @param file 
  4.  */   
  5. private void openFile(File file){   
  6.        
  7.     Intent intent = new Intent();   
  8.     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   
  9.     //设置intent的Action属性   
  10.     intent.setAction(Intent.ACTION_VIEW);   //这里的action——view之功用5下一篇博客  
  11.     //获取文件file的MIME类型   
  12.     String type = getMIMEType(file);   
  13.     //设置intent的data和Type属性。   
  14.     intent.setDataAndType(/*uri*/Uri.fromFile(file), type);   
  15.     //跳转   
  16.     startActivity(intent);     
  17.        
  18. }   
  19.    
  20. /** 
  21.  * 根据文件后缀名获得对应的MIME类型。 
  22.  * @param file 
  23.  */   
  24. private String getMIMEType(File file) {   
  25.        
  26.     String type="*/*";   
  27.     String fName = file.getName();   
  28.     //获取后缀名前的分隔符"."在fName中的位置。   
  29.     int dotIndex = fName.lastIndexOf(".");   
  30.     if(dotIndex < 0){   
  31.         return type;   
  32.     }   
  33.     /* 获取文件的后缀名*/   
  34.     String end=fName.substring(dotIndex,fName.length()).toLowerCase();   
  35.     if(end=="")return type;   
  36.     //在MIME和文件类型的匹配表中找到对应的MIME类型。   
  37.     for(int i=0;i<MIME_MapTable.length;i++){ //MIME_MapTable??在这里你一定有疑问,这个MIME_MapTable是什么?   
  38.         if(end.equals(MIME_MapTable[i][0]))   
  39.             type = MIME_MapTable[i][1];   
  40.     }          
  41.     return type;   
  42. }   
  43.    
  44.    
  45.    
  46.    
  47.    
  48.    
  49.    
  50.  由上可见,MIME_MapTable是所有文件的后缀名所对应的MIME类型的一个String数组:  
  51.    
  52. Java代码  
  53.   
  54.           final String[][] MIME_MapTable={   
  55.             //{后缀名,MIME类型}   
  56.             {".3gp",    "video/3gpp"},   
  57.             {".apk",    "application/vnd.android.package-archive"},   
  58.             {".asf",    "video/x-ms-asf"},   
  59.             {".avi",    "video/x-msvideo"},   
  60.             {".bin",    "application/octet-stream"},   
  61.             {".bmp",    "image/bmp"},   
  62.             {".c",  "text/plain"},   
  63.             {".class",  "application/octet-stream"},   
  64.             {".conf",   "text/plain"},   
  65.             {".cpp",    "text/plain"},   
  66.             {".doc",    "application/msword"},   
  67.             {".docx",   "application/vnd.openxmlformats-officedocument.wordprocessingml.document"},   
  68.             {".xls",    "application/vnd.ms-excel"},    
  69.             {".xlsx",   "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"},   
  70.             {".exe",    "application/octet-stream"},   
  71.             {".gif",    "image/gif"},   
  72.             {".gtar",   "application/x-gtar"},   
  73.             {".gz""application/x-gzip"},   
  74.             {".h",  "text/plain"},   
  75.             {".htm",    "text/html"},   
  76.             {".html",   "text/html"},   
  77.             {".jar",    "application/java-archive"},   
  78.             {".java",   "text/plain"},   
  79.             {".jpeg",   "image/jpeg"},   
  80.             {".jpg",    "image/jpeg"},   
  81.             {".js""application/x-javascript"},   
  82.             {".log",    "text/plain"},   
  83.             {".m3u",    "audio/x-mpegurl"},   
  84.             {".m4a",    "audio/mp4a-latm"},   
  85.             {".m4b",    "audio/mp4a-latm"},   
  86.             {".m4p",    "audio/mp4a-latm"},   
  87.             {".m4u",    "video/vnd.mpegurl"},   
  88.             {".m4v",    "video/x-m4v"},    
  89.             {".mov",    "video/quicktime"},   
  90.             {".mp2",    "audio/x-mpeg"},   
  91.             {".mp3",    "audio/x-mpeg"},   
  92.             {".mp4",    "video/mp4"},   
  93.             {".mpc",    "application/vnd.mpohun.certificate"},          
  94.             {".mpe",    "video/mpeg"},     
  95.             {".mpeg",   "video/mpeg"},     
  96.             {".mpg",    "video/mpeg"},     
  97.             {".mpg4",   "video/mp4"},      
  98.             {".mpga",   "audio/mpeg"},   
  99.             {".msg",    "application/vnd.ms-outlook"},   
  100.             {".ogg",    "audio/ogg"},   
  101.             {".pdf",    "application/pdf"},   
  102.             {".png",    "image/png"},   
  103.             {".pps",    "application/vnd.ms-powerpoint"},   
  104.             {".ppt",    "application/vnd.ms-powerpoint"},   
  105.             {".pptx",   "application/vnd.openxmlformats-officedocument.presentationml.presentation"},   
  106.             {".prop",   "text/plain"},   
  107.             {".rc""text/plain"},   
  108.             {".rmvb",   "audio/x-pn-realaudio"},   
  109.             {".rtf",    "application/rtf"},   
  110.             {".sh""text/plain"},   
  111.             {".tar",    "application/x-tar"},      
  112.             {".tgz",    "application/x-compressed"},    
  113.             {".txt",    "text/plain"},   
  114.             {".wav",    "audio/x-wav"},   
  115.             {".wma",    "audio/x-ms-wma"},   
  116.             {".wmv",    "audio/x-ms-wmv"},   
  117.             {".wps",    "application/vnd.ms-works"},   
  118.             {".xml",    "text/plain"},   
  119.             {".z",  "application/x-compress"},   
  120.             {".zip",    "application/x-zip-compressed"},   
  121.             {"",        "*/*"}     
  122.         };   
  123.    


由上可见,

  1. "application/vnd.android.package-archive"是文件类型,具体对应apk类型。  

  评论这张
 
阅读(180)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016