现在的位置: 首页 > 综合 > 正文

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

2013年02月25日 ⁄ 综合 ⁄ 共 4074字 ⁄ 字号 评论关闭

 

安装:

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

卸载:

 

1 Uri packageURI = Uri.parse("package:com.demo.CanavaCancel");   
2 Intent uninstallIntent = newIntent(Intent.ACTION_DELETE, packageURI);   
3 startActivity(uninstallIntent);
 
Environment拥有一些可以获取环境变量的方法 
package:com.demo.CanavaCancel 这个形式是 package:程序完整的路径 (包名+程序名).
 

//下载apk程序代码

01 protected
File downLoadFile(String httpUrl) {
02                 // TODO Auto-generated method stub
03                 finalString fileName =
"updata.apk";
04                 File tmpFile =new
File("/sdcard/update");
05                 if(!tmpFile.exists()) {
06                         tmpFile.mkdir();
07                 }
08                 finalFile file =
newFile("/sdcard/update/"+ fileName);
09   
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                                 doublecount =
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                                                         intnumRead = 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                 returnfile;
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         }
//打开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");


【上篇】
【下篇】

抱歉!评论已关闭.