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

和申的个人主页

专注于java开发,1985wanggang

 
 
 

日志

 
 

apk安装法之二----一段Android实现应用下载并自动安装apk包的代码  

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

  下载LOFTER 我的照片书  |

Android实现应用下载并自动安装apk包

安装:

  1. String str = "/CanavaCancel.apk";   
  2. String fileName = Environment.getExternalStorageDirectory() + str;   
  3. Intent intent = new Intent(Intent.ACTION_VIEW);   
  4. intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");   
  5. startActivity(intent);  

卸载:

  1. Uri packageURI = Uri.parse("package:com.demo.CanavaCancel");     
  2. Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);     
  3. startActivity(uninstallIntent);  

下载apk程序代码

  1. protected File downLoadFile(String httpUrl) {  
  2.                 // TODO Auto-generated method stub  
  3.                 final String fileName = "updata.apk";  
  4.                 File tmpFile = new File("/sdcard/update");  
  5.                 if (!tmpFile.exists()) {  
  6.                         tmpFile.mkdir();  
  7.                 }  
  8.                 final File file = new File("/sdcard/update/" + fileName);  
  9.   
  10.                 try {  
  11.                         URL url = new URL(httpUrl);  
  12.                         try {  
  13.                                 HttpURLConnection conn = (HttpURLConnection) url  
  14.                                                 .openConnection();  
  15.                                 InputStream is = conn.getInputStream();  
  16.                                 FileOutputStream fos = new FileOutputStream(file);  
  17.                                 byte[] buf = new byte[256];  
  18.                                 conn.connect();  
  19.                                 double count = 0;  
  20.                                 if (conn.getResponseCode() >= 400) {  
  21.                                         Toast.makeText(Main.this"连接超时", Toast.LENGTH_SHORT)  
  22.                                                         .show();  
  23.                                 } else {  
  24.                                         while (count <= 100) {  
  25.                                                 if (is != null) {  
  26.                                                         int numRead = is.read(buf);  
  27.                                                         if (numRead <= 0) {  
  28.                                                                 break;  
  29.                                                         } else {  
  30.                                                                 fos.write(buf, 0, numRead);  
  31.                                                         }  
  32.   
  33.                                                 } else {  
  34.                                                         break;  
  35.                                                 }  
  36.   
  37.                                         }  
  38.                                 }  
  39.   
  40.                                 conn.disconnect();  
  41.                                 fos.close();  
  42.                                 is.close();  
  43.                         } catch (IOException e) {  
  44.                                 // TODO Auto-generated catch block  
  45.   
  46.                                 e.printStackTrace();  
  47.                         }  
  48.                 } catch (MalformedURLException e) {  
  49.                         // TODO Auto-generated catch block  
  50.   
  51.                         e.printStackTrace();  
  52.                 }  
  53.   
  54.                 return file;  
  55.         }  
  56. //打开APK程序代码  
  57.   
  58. private void openFile(File file) {  
  59.                 // TODO Auto-generated method stub  
  60.                 Log.e("OpenFile", file.getName());  
  61.                 Intent intent = new Intent();  
  62.                 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
  63.                 intent.setAction(android.content.Intent.ACTION_VIEW);  
  64.                 intent.setDataAndType(Uri.fromFile(file),  
  65.                                 "application/vnd.android.package-archive");  
  66.                 startActivity(intent);  
  67.         }  
  68.   
  69.    
http://blog.csdn.net/heikefangxian23/article/details/38582021
  评论这张
 
阅读(165)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

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

页脚

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