热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

适用于多个安卓版本(包括5.1、6.0、7.1、10、11)的静默安装APK方法详解

系统级app需要实现静默安装apk的功能,且能兼容各安卓系统版本废话不多说,直接上代码:Processprocessnull;Buffe


系统级app需要实现静默安装apk的功能,且能兼容各安卓系统版本

废话不多说,直接上代码:


Process process = null;
BufferedReader successResult = null;
BufferedReader errorResult = null;
StringBuilder successMsg = new StringBuilder();
StringBuilder errorMsg = new StringBuilder();
try {
//-i 指定安装程序包名称 , -r 覆盖安装 -d 阶级安装
process = new ProcessBuilder("pm", "install", "-i", context.getPackageName(), "-r", "-d", path).start();
successResult = new BufferedReader(new InputStreamReader(process.getInputStream()));
errorResult = new BufferedReader(new InputStreamReader(process.getErrorStream()));
String line;
while ((line = successResult.readLine()) != null) {
successMsg.append(line);//.append("\n")
}
while ((line = errorResult.readLine()) != null) {
errorMsg.append(line);
}
} catch (Throwable e) {
e.printStackTrace();
} finally {
try {
if (successResult != null) {
successResult.close();
}
if (errorResult != null) {
errorResult.close();
}
if (process != null) {
process.destroy();
}
} catch (Throwable e) { }
}
Log.d(TAG, "installApk--- apk安装结果 suclog=" + successMsg+", error="+errorMsg);//installApk--- suclog:Success
if (!TextUtils.isEmpty(successMsg.toString()) && successMsg.toString().toLowerCase().contains("success")){
//安装成功
if (installListener != null){
installListener.installResutl(true, successMsg.toString());
}
}else{
//安装失败
if (installListener != null){
installListener.installResutl(false, errorMsg.toString());
}
}




推荐阅读
author-avatar
手机用户2502896067
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有