Android 静默卸载指定包名APP
来源:互联网 发布:移动数据 编辑:程序博客网 时间:2024/05/20 20:20
前提:**设备已经root,未root设备,无法实现静默卸载
方式很多,我采用”uninstall + 应用程序包名 “方式卸载,以下是核心代码**。
代码下载:
http://download.csdn.net/detail/aiwusheng/7582049
升级版代码下载:
http://download.csdn.net/detail/aiwusheng/7586057
/** * 静默卸载apk到Data/app目录 * * @param packageName * @return 卸载成功为true */ public static boolean uninstallDataAPPBySilent(String packageName) { Log.d(TAG, "-------uninstallDataAPPBySilent------"); // 参数检测 if (TextUtils.isEmpty(packageName)) { return false; } Log.d(TAG, "packageName: " + packageName); StringBuilder cmd = new StringBuilder(); cmd.append("pm uninstall " + packageName).append("\n"); // 部分手机Root之后Library path 丢失,导入library path可解决该问题 // cmd.append("export LD_LIBRARY_PATH=/vendor/lib:/system/lib"); if (execRootCmd(cmd.toString()) == 0) { Log.e(TAG, "uninstall: " + packageName + "success"); return true; } Log.e(TAG, "uninstall: " + packageName + " failed"); return false; } /** * root权限下执行命令 * * @param cmd * 多条命令需用换行分隔 * @return 执行结果码 0代表成功 */ private static int execRootCmd(String cmd) { Log.d(TAG, "execRootCmd: " + cmd); Process process = null; DataOutputStream dos = null; try { process = Runtime.getRuntime().exec("su"); dos = new DataOutputStream(process.getOutputStream()); dos.writeBytes(cmd + "\n"); dos.flush(); dos.writeBytes("exit\n"); dos.flush(); process.waitFor(); Log.e(TAG, "process.exitValue(): " + process.exitValue()); return process.exitValue(); } catch (Exception e) { Log.e(TAG, "exception: " + e.getMessage()); return -1; } finally { try { if (dos != null) { dos.close(); } process.destroy(); } catch (Exception e) { e.printStackTrace(); } } }
阅读全文
0 0
- Android 静默卸载指定包名APP
- android卸载指定包名应用
- Android实践 -- App的静默安装和卸载
- android 之 静默卸载
- Android实现静默卸载
- Android手动卸载同包名冲突的APP,卸载系统预装APP,开发板android-serialport-api调试工具卸载
- android静默安装、静默卸载apk方法
- Android静默安装和静默卸载
- Android--静默安装和静默卸载
- Android静默安装和静默卸载
- Android静默安装和静默卸载
- android实现静默卸载和静默安装
- Android静默安装和静默卸载
- Android静默安装和静默卸载
- android静默安装与静默卸载
- Android:Java代码实现APP普通安装卸载和静默安装卸载
- android app 静默安装
- android 实现静默安装、卸载
- 征信“黑名单”2年消除还是5年消除?
- 光猫、路由器、交换机、wifi的概念和作用
- Apache中的error.log文件过大占用内存
- 【51Nod】1080 两个数的平方和
- Django Error 集锦
- Android 静默卸载指定包名APP
- Visual studio is waiting for internal operation to complete
- spark 2.1 RDD persist process
- spring4
- jd-eclipse 的安装和使用
- echo 变色
- Java学习笔记_14
- Currying是什么
- 为什么jdk中把String类设计成final?