android apk下载 安装 卸载 打开

Android程序使用代码的安装和卸载!!!

安装:
String str = "/CanavaCancel.apk";
String fileName = Environment.getExternalStorageDirectory() + str;
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");
startActivity(intent);
卸载:
Uri packageURI = Uri.parse("package:com.demo.CanavaCancel");   
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);   
startActivity(uninstallIntent);
Environment拥有一些可以获取环境变量的方法 
package:com.demo.CanavaCancel 这个形式是 package:程序完整的路径 (包名+程序名).

//下载apk程序代码

protectedFiledownLoadFile(StringhttpUrl){

//TODOAuto-generatedmethodstub

finalStringfilename="updata.apk";

FiletmpFile=newFile("/sdcard/update");

if(!tmpFile.exists()){

tmpFile.mkdir();

}

finalFilefile=newFile("/sdcard/update/"+fileName);

try{

URLurl=newURL(httpUrl);

try{

HttpURLConnectionconn=(HttpURLConnection)url

.openConnection();

InputStreamis=conn.getInputStream();

FileOutputStreamfos=newFileOutputStream(file);

byte[]buf=newbyte[256];

conn.connect();

doublecount=0;

if(conn.getResponseCode()>=400){

Toast.makeText(Main.this,"连接超时",Toast.LENGTH_SHORT)

.show();

}else{

while(count<=100){

if(is!=null){

intnumRead=is.read(buf);

if(numRead<=0){

break;

}else{

fos.write(buf,0,numRead);

}

}else{

break;

}

}

}

conn.disconnect();

fos.close();

is.close();

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

}catch(MalformedURLExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

returnfile;

}

//打开APK程序代码

privatevoidopenFile(Filefile){

//TODOAuto-generatedmethodstub

Log.e("OpenFile",file.getName());

Intentintent=newIntent();

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

intent.setAction(android.content.Intent.ACTION_VIEW);

intent.setDataAndType(Uri.fromFile(file),

"application/vnd.android.package-archive");

startActivity(intent);

        }

相关推荐