安装和卸载可以通过Intent调用系统自身的程序安装和卸载程序来实现,
另外,我们也可以直接调用Android的安装和卸载程序接口来实现。
方法一:
Uri packageURI = Uri.parse("package:"+packageName); // 这个形式是 package:程序完整的路径 (包名+程序名).
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
startActivity(uninstallIntent);
方法二:
// 先获取PackageManager 对象
PackageManager mPm = getPackageManager();
// 这是第三方应用的相关操作
PackageDeleteObserver observer = new PackageDeleteObserver();
Class b;
b = Class.forName("android.content.pm.PackageManager");
//获得对象的所有属性
Field[] fields=b.getDeclaredFields();
int dont_delete_data=0;
for(int i=0;i <fields.length;i++){
//获取数组中对应的属性
Field field=fields[i];
String fieldName=field.getName();
if(fieldName.equals("DONT_DELETE_DATA")){
dont_delete_data = (Integer) field.get(mPm);
}
}
}
Method getDeleteInfo = mPm.getClass().getDeclaredMethod("deletePackage",String.class,IPackageDeleteObserver.class,int.class);//用反射调用此方法deletePackage,需要传三个参数。
getDeleteInfo.invoke(mPm,"net.sunniwell.mediaplay.test",observer,dont_delete_data);//用mPm对象调用方法deletePackage,需要传三个参数。见源码。
最后加入权限:android.permission.GET_PACKAGE_SIZE,还要签名。