在Android手机中软件的安装和卸载方法有很多种,可以通过手机自身的安装程序,也可以使用第三方软件管理来安装和卸载Android的应用程序,但是在项目中,有的时候可能需要我们手动的去卸载一个自己安装的程序。
private void installAPK(String apkFilePath) {
// TODO Auto-generated method stub
// 安装程序的apk文件路径
String fileName = Environment.getExternalStorageDirectory() + apkFilePath;
// 创建URI
Uri uri = Uri.fromFile(new File(fileName));
// 创建Intent意图
Intent intent = new Intent(Intent.ACTION_VIEW);
// 设置Uri和类型
intent.setDataAndType(uri, "application/vnd.android.package-archive");
// 执行意图进行安装
startActivity(intent);
}
B、软件卸载代码实现,注意这里Action是Intent.ACTION_DELETE
public void uninstallAPK(String packageName) {
// TODO Auto-generated method stub
// 通过程序的报名创建URI
Uri packageURI = Uri.parse("package:" + packageName);
// 创建Intent意图
Intent intent = new Intent(Intent.ACTION_DELETE);
intent.setData(packageURI);
// 执行卸载程序
startActivity(intent);
}
可以看到以上的程序安装和卸载代码都是通过Intent调用系统自身的程序安装和卸载程序来实现,另外,我们也可以直接调用Android的安装和卸载程序接口来实现,但是ATAAW.COM认为调用系统自带的安装卸载功能就足够,使用起来也较为方便。
下面是自己写的demo
package com.example.a;
import java.io.File;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.view.Menu;
import android.view.View;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void doClick(View view) {
// TODO Auto-generated method stub
switch (view.getId()) {
case R.id.install:
installAPK("/SLEBInstaller.apk");
break;
case R.id.uninstall:
uninstallAPK("com.sleb.installer");
break;
default:
break;
}
}
public void uninstallAPK(String packageName) {
// TODO Auto-generated method stub
// 通过程序的报名创建URI
Uri packageURI = Uri.parse("package:" + packageName);
// 创建Intent意图
Intent intent = new Intent(Intent.ACTION_DELETE);
intent.setData(packageURI);
// 执行卸载程序
startActivity(intent);
}
private void installAPK(String apkFilePath) {
// TODO Auto-generated method stub
// 安装程序的apk文件路径
String fileName = Environment.getExternalStorageDirectory() + apkFilePath;
// 创建URI
Uri uri = Uri.fromFile(new File(fileName));
// 创建Intent意图
Intent intent = new Intent(Intent.ACTION_VIEW);
// 设置Uri和类型
intent.setDataAndType(uri, "application/vnd.android.package-archive");
// 执行意图进行安装
startActivity(intent);
}
}