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

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

2012-11-06 09:00 736 查看
安装:

1
Stringstr=
"/CanavaCancel.apk"
;
2
StringfileName=Environment.getExternalStorageDirectory()+str;
3
Intentintent=
new

Intent(Intent.ACTION_VIEW);
4
intent.setDataAndType(Uri.fromFile(
new

File(fileName)),
"application/vnd.android.package-archive"
);
5
startActivity(intent);
卸载:

1
UripackageURI=Uri.parse(
"package:com.demo.CanavaCancel"
);
2
IntentuninstallIntent=
new

Intent(Intent.ACTION_DELETE,packageURI);
3
startActivity(uninstallIntent);
Environment拥有一些可以获取环境变量的方法

package:com.demo.CanavaCancel这个形式是package:程序完整的路径(包名+程序名)

//下载apk程序代码

01
protected
FiledownLoadFile(StringhttpUrl){
02
//TODOAuto-generatedmethodstub
03
final

StringfileName=
"updata.apk"
;
04
FiletmpFile=
new
File(
"/sdcard/update"
);
05
if

(!tmpFile.exists()){
06
tmpFile.mkdir();
07
}
08
final

Filefile=
new

File(
"/sdcard/update/"

+fileName);
09
10
try

{
11
URLurl=
new
URL(httpUrl);
12
try

{
13
HttpURLConnectionconn=(HttpURLConnection)url
14
.openConnection();
15
InputStreamis=conn.getInputStream();
16
FileOutputStreamfos=
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
(IOExceptione){
44
//TODOAuto-generatedcatchblock
45
46
e.printStackTrace();
47
}
48
}
catch
(MalformedURLExceptione){
49
//TODOAuto-generatedcatchblock
50
51
e.printStackTrace();
52
}
53
54
return

file;
55
}
56
//打开APK程序代码
57
58
private
void
openFile(Filefile){
59
//TODOAuto-generatedmethodstub
60
Log.e(
"OpenFile"
,file.getName());
61
Intentintent=
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://lib.open-open.com/view/1329274683593
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: