adb 静默安装_apk 静默安装
如果需要应用进行静默安装,则需要满足一下两个条件
1 必须添加权限
2 必须是系统应用,或者系统签名应用
方法 1 通过 adb install 安装
/**
*
* @param apkFilePath 安装包路径
* @return true 、false
*/
public boolean installByADB(String apkFilePath){
boolean success = false;
if (apkFilePath == null || apkFilePath.equals("")) {return success;}
File apkFile = new File(apkFilePath);
if (!apkFile.exists() || apkFile.isDirectory()) {return success;}
String[] args = { "pm", "install", "-r", "-d", apkFilePath };
ByteArrayOutputStream eBAout = new ByteArrayOutputStream();
ByteArrayOutputStream nBAout = new ByteArrayOutputStream();
ProcessBuilder processBuilder = null;
java.lang.Process process = null;
InputStream eis = null;
InputStream is = null;
int num = 0;
byte[] buffer = new byte[1024];
try {
processBuilder = new ProcessBuilder(args);
process = processBuilder.start();
eis = process.getErrorStream();
while ((num = eis.read(buffer)) != -1) {
eBAout.write(buffer, 0, num);
}
is = process.getInputStream();
while ((num = is.read(buffer)) != -1) {
nBAout.write(buffer, 0, num);
}
String error = eBAout.toString("UTF-8");
String normal = nBAout.toString("UTF-8");
if(normal != null && normal.contains("Success")){success = true;}
} catch (IOException e) {
} catch (Exception e) {
} catch (Throwable t) {
} finally {
try {
if (null != eis) {eis.close();}
} catch (Exception e) {}
try {
if (null != is) {is.close();}
} catch (Exception e) {}
process.destroy();
}
return success;
}
方法2 通过PM安装
这个方法的前提是将framework参与编译并排列第一
/**
* @param context
* @param apkPath
*/
public void installSilentlyBYPM(Context context, String apkPath) {
if(apkPath == null || "".equals(apkPath)){return;}
File apkFile = new File(apkPath);
(!apkFile.exists() || apkFile.isDirectory()){return;}
Uri apkPackageURI = Uri.fromFile(apkFile);
int installFlags = PackageManager.INSTALL_ALL_USERS|PackageManager.INSTALL_REPLACE_EXISTING;
PackageManager pm = context.getPackageManager();
pm.installPackage(apkPackageURI, new PackageInstallObserver(){
@Override
public void onPackageInstalled(String basePackageName, int returnCode, String msg, Bundle extras){
super.onPackageInstalled(basePackageName, returnCode, msg, extras);
if(returnCode == 1){
//如果安装包的包名等于basePackageName; 则安装成功
}
}
}, installFlags, context.getPackageName());
}
adb 静默安装_apk 静默安装相关推荐
- Android 静默安装和智能安装的实现方法
1 简介 最近研究了Android的静默安装和智能安装,于是写博客记录一下. 静默安装就是无声无息的在后台安装apk,没有任何界面提示. 智能安装就是有安装界面,但全部是自动的,不需要用户去点击. 首 ...
- websphere7 linux 命令行安装(静默安装)
1 登陆root用户,解压该安装包 was.cd.70011.trial.base.opt.linux.ia32.tar.gz 2.编辑配置文件responsefile.nd.txt. respons ...
- android实现后台静默安装,Android 静默安装实现方法
Android静默安装的方法,静默安装就是绕过安装程序时的提示窗口,直接在后台安装. 注意:静默安装的前提是设备有ROOT权限. 代码如下: /** * 静默安装 * @param file * @r ...
- Linux下安装Oracle12c图形化及静默两种方法安装操作手册
首先确定服务器硬件条件 内存:大于2G 命令(free -g) 磁盘空间:100G 命令(df -h) 共享空间:大于等于2G 命令(df -h) 内核版本:64位 命令(uname -m) 注意:图 ...
- Linux上安装oracle19c客户端,Oracle 19c的下载和安装部署(图形安装和静默安装)
Oracle 19C的下载和安装部署(图形安装和静默安装) Oracle Database 19c ,也就是12.2.0.3,最初在livesql.oracle.com上发布,是Oracle Data ...
- Docker下安装MCR windows镜像安装Matlab 静默安装MCR silent install 无交互安装 无Gui安装 控制台安装
Docker下安装MCR windows镜像安装Matlab 静默安装MCR silent install 无交互安装 无Gui安装 控制台安装 转载请注明出处:https://blog.csdn.n ...
- 安装包UI美化之路-升级安装与静默安装一键打包
在实际应用中,除了产品安装外,还需要能够持续升级到新的版本,这时候升级方案就显得比较重要:而还有一些使用场景,需要咱们的安装包在安装时,不要显示安装界面,直接在后台进行安装! 这些业务功能,都是非常实 ...
- Android--静默安装和静默卸载
Android--静默安装和静默卸载 静默顾名思义就是静静的默默地,静默安装和静默卸载的意思也就是说在后台默默地安装和卸载. 最近的一个app应用分发的项目中app下载的模块,下载完成之后,用户可以通 ...
- php静默安装,如何静默安装、静默卸载 之Installshield installscript工程 | 陶雨轩
最近又在整理Installshield 打包了,有用户要求静默安装和静默卸载.而且还是exe的,msi的好说,msi的格式都是定的,windows 固定的安装包格式,调用相应的参数即可进行静默安装和静 ...
- Android构建系统级应用静默授权,静默安装
文章目录 背景 目标 实现 获取系统应用权限 原理 实现 静默安装 普通升级安装 shell命令安装 模拟系统安装程序流程 背景 基于定制平板系统开发应用,能获得安卓源码层的支持. Android8. ...
最新文章
- 成本、质量、人力资源要点
- concurrenthashmap在1.8和1.7里面有什么区别
- head()函数python_Python中的Pandas DataFrame head()方法
- CSDN Markdown使用
- ASP.NET身份验证机制membership入门——配置篇(1){转}
- 复杂对象的组装与创建——建造者模式
- spring三大核心学习
- 使用API​​密钥(aka身份验证令牌)部署到Maven Central
- 谈一下关于CQRS架构如何实现高性能
- JavaScript 编程精解 中文第三版 十五、处理事件
- 开始使用ASP.NET核心运行状况检查
- 工资10000元,应该交多少税?
- flex里播放声音的方法
- ThinkPHP无限分类模块设计
- CorelDRAWX4的VBA插件开发(三)VBA的必用基础知识
- 什么是WEBService,实现WEBService有哪些框架
- 仿秒秒测日历页面和部分功能
- CImage::Loda 方法加载图片失败,因为vs2013中该方法不支持中文变量
- matlab模糊建模设计,毕业设计matlab建模
- NOIP2009 pj
热门文章
- 韩语在线翻译图片识别_Text Scanner for Mac(ocr文字识别工具)
- 【四足机器人--支撑相足端反作用力预测】(5)ConvexMPCLocomotion代码解析
- matlab ss2ss,Zemax+DDE+toolbox+for+Matlab 该工具箱可实现matlab编程和zemax通信 - 下载 - 搜珍网...
- Python Scrapy中文教程,Scrapy框架快速入门
- ViewPage的使用与介绍
- Base16加密算法
- (翻译)折叠菜单(Accordion Menu)
- 阿里发布的Redis开发文档,涵盖了所有的redis操作
- 多电压等级计算机潮流计算,电力系统稳态分析教学心得
- unity视频教程【高清+精选】大放送