静默升级需要为系统应用或者Root权限;
本文仅针对已Root的机器;
本文采用了了Blankj的开源工具类ShellUtils;附上Blankj AndroidUtil地址;
以下是实现静默升级和升级后自启动的代码:
// 安装App命令:apkFilePath为待安装的软件地址 String installCommand = "LD_LIBRARY_PATH=/vendor/lib*:/system/lib* pm install -r " + apkFilePath; // 重启密令: getPackageName:软件包名,MainActivity.class.getCanonicalName():重启APP的首页; String restartCommand = "LD_LIBRARY_PATH=/vendor/lib*:/system/lib* am start -n " + getPackageName() + "/" + MainActivity.class.getCanonicalName(); String[] commands = {installCommand, restartCommand}; ShellUtils.CommandResult commandResult = ShellUtils.execCmd(commands, true, true);
安装完成后,会退回主页面,大概几秒后就会进入软件主页;
最近需要做这个功能,在网上也没有找到合适的解决方法;估计有人会需要,就写下来了;写的不好,请轻喷!!!