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);
Environment拥有一些可以获取环境变量的方法
package:com.demo.CanavaCancel 这个形式是 package:程序完整的路径 (包名+程序名).
//下载apk程序代码
01 protected File downLoadFile(String httpUrl) {
02 // TODO Auto-generated method stub
03 final String fileName = "updata.apk";
04 File tmpFile = new File("/sdcard/update");
05 if (!tmpFile.exists()) {
06 tmpFile.mkdir();
07 }
08 final File file = new File("/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 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 }
上一篇:将扫描QR Codes(二维码)功能加入Android App
下一篇:没有了
讨论数量:0