Android 卸载应用的两种方式
2015-01-28 12:49
351 查看
1、调用系统的卸载:
Intent intent = new Intent(Intent.ACTION_DELETE, Uri.parse("package:" + pkg_name));
startActivity(intent);
2、调用adb卸载:
runCmd("adb uninstall " + pkg_name);
/**
* 通过adb卸载应用
*
* @param cmd
* @return
*/
public String runCmd(String cmd) {
try {
System.out.println(cmd);
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(cmd);
int result = process.waitFor();
BufferedReader successResult = new BufferedReader(new InputStreamReader(process.getInputStream()));
BufferedReader errorResult = new BufferedReader(new InputStreamReader(process.getErrorStream()));
String s;
StringBuilder successMsg = new StringBuilder();
while ((s = successResult.readLine()) != null) {
successMsg.append(s).append('-');
}
StringBuilder errorMsg = new StringBuilder();
while ((s = errorResult.readLine()) != null) {
errorMsg.append(s);
}
System.out.println(successMsg.toString() + ":" + errorMsg.toString());
return successMsg.toString() + ":" + errorMsg.toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
注意:1、这两种种卸载的弊端就是只能卸载第三方安装的应用,要是卸载系统的需要root权限
2、adb卸载的方式可以简化下,不需要那么多代码,自己去看吧
3、最好在卸载的时候使用try{}catch{}判断一下,,,
Intent intent = new Intent(Intent.ACTION_DELETE, Uri.parse("package:" + pkg_name));
startActivity(intent);
2、调用adb卸载:
runCmd("adb uninstall " + pkg_name);
/**
* 通过adb卸载应用
*
* @param cmd
* @return
*/
public String runCmd(String cmd) {
try {
System.out.println(cmd);
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(cmd);
int result = process.waitFor();
BufferedReader successResult = new BufferedReader(new InputStreamReader(process.getInputStream()));
BufferedReader errorResult = new BufferedReader(new InputStreamReader(process.getErrorStream()));
String s;
StringBuilder successMsg = new StringBuilder();
while ((s = successResult.readLine()) != null) {
successMsg.append(s).append('-');
}
StringBuilder errorMsg = new StringBuilder();
while ((s = errorResult.readLine()) != null) {
errorMsg.append(s);
}
System.out.println(successMsg.toString() + ":" + errorMsg.toString());
return successMsg.toString() + ":" + errorMsg.toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
注意:1、这两种种卸载的弊端就是只能卸载第三方安装的应用,要是卸载系统的需要root权限
2、adb卸载的方式可以简化下,不需要那么多代码,自己去看吧
3、最好在卸载的时候使用try{}catch{}判断一下,,,
相关文章推荐
- 【Android应用开发】-(18)静默方式实现批量安装卸载应用程序
- Android 应用开发 之通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比
- Android back键监听退出应用的两种方式
- Android 应用开发 之通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比
- 记录一下Android两种实现双击退出应用的方式
- Android 应用开发 之通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比
- android经过POST和GET两种方式发送数据到web应用实战
- Android 双击back键退出应用的两种方式
- Android应用界面无标题栏和全屏效果的两种实现方式
- [置顶] 【Android应用开发】-(18)静默方式实现批量安装卸载应用程序
- (转载)Android两种Tab分页的方式:TabActivity和ActivityGroup以及Android项目几种常见的应用架构
- Android 为应用创建多个桌面快捷方式,可在卸载时自动删除桌面快捷方式
- android替换当前应用的ClassLoder两种方式
- Android在应用内启动另一个应用程序apk的两种方式
- Android 打开其他应用app的两种方式
- Android 应用开发 之通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比--转载
- Android 安装应用的两种方式--外部应用安装器安装和静默安装(系统应用)
- Android 应用开发 之通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比
- 运行Android应用的两种方式(模拟器和真机)
- android应用打包成apk的两种方式