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

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

2013-07-10 08:54 543 查看
安装:

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
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息