您的位置:首页 > 移动开发 > Android开发

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

2013-01-05 16:02 603 查看
安装:

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
}


转载自:http://www.open-open.com/lib/view/1329274683593
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: