如果需要应用进行静默安装,则需要满足一下两个条件

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 静默安装相关推荐

  1. Android 静默安装和智能安装的实现方法

    1 简介 最近研究了Android的静默安装和智能安装,于是写博客记录一下. 静默安装就是无声无息的在后台安装apk,没有任何界面提示. 智能安装就是有安装界面,但全部是自动的,不需要用户去点击. 首 ...

  2. websphere7 linux 命令行安装(静默安装)

    1 登陆root用户,解压该安装包 was.cd.70011.trial.base.opt.linux.ia32.tar.gz 2.编辑配置文件responsefile.nd.txt. respons ...

  3. android实现后台静默安装,Android 静默安装实现方法

    Android静默安装的方法,静默安装就是绕过安装程序时的提示窗口,直接在后台安装. 注意:静默安装的前提是设备有ROOT权限. 代码如下: /** * 静默安装 * @param file * @r ...

  4. Linux下安装Oracle12c图形化及静默两种方法安装操作手册

    首先确定服务器硬件条件 内存:大于2G 命令(free -g) 磁盘空间:100G 命令(df -h) 共享空间:大于等于2G 命令(df -h) 内核版本:64位 命令(uname -m) 注意:图 ...

  5. Linux上安装oracle19c客户端,Oracle 19c的下载和安装部署(图形安装和静默安装)

    Oracle 19C的下载和安装部署(图形安装和静默安装) Oracle Database 19c ,也就是12.2.0.3,最初在livesql.oracle.com上发布,是Oracle Data ...

  6. Docker下安装MCR windows镜像安装Matlab 静默安装MCR silent install 无交互安装 无Gui安装 控制台安装

    Docker下安装MCR windows镜像安装Matlab 静默安装MCR silent install 无交互安装 无Gui安装 控制台安装 转载请注明出处:https://blog.csdn.n ...

  7. 安装包UI美化之路-升级安装与静默安装一键打包

    在实际应用中,除了产品安装外,还需要能够持续升级到新的版本,这时候升级方案就显得比较重要:而还有一些使用场景,需要咱们的安装包在安装时,不要显示安装界面,直接在后台进行安装! 这些业务功能,都是非常实 ...

  8. Android--静默安装和静默卸载

    Android--静默安装和静默卸载 静默顾名思义就是静静的默默地,静默安装和静默卸载的意思也就是说在后台默默地安装和卸载. 最近的一个app应用分发的项目中app下载的模块,下载完成之后,用户可以通 ...

  9. php静默安装,如何静默安装、静默卸载 之Installshield installscript工程 | 陶雨轩

    最近又在整理Installshield 打包了,有用户要求静默安装和静默卸载.而且还是exe的,msi的好说,msi的格式都是定的,windows 固定的安装包格式,调用相应的参数即可进行静默安装和静 ...

  10. Android构建系统级应用静默授权,静默安装

    文章目录 背景 目标 实现 获取系统应用权限 原理 实现 静默安装 普通升级安装 shell命令安装 模拟系统安装程序流程 背景 基于定制平板系统开发应用,能获得安卓源码层的支持. Android8. ...

最新文章

  1. 成本、质量、人力资源要点
  2. concurrenthashmap在1.8和1.7里面有什么区别
  3. head()函数python_Python中的Pandas DataFrame head()方法
  4. CSDN Markdown使用
  5. ASP.NET身份验证机制membership入门——配置篇(1){转}
  6. 复杂对象的组装与创建——建造者模式
  7. spring三大核心学习
  8. 使用API​​密钥(aka身份验证令牌)部署到Maven Central
  9. 谈一下关于CQRS架构如何实现高性能
  10. JavaScript 编程精解 中文第三版 十五、处理事件
  11. 开始使用ASP.NET核心运行状况检查
  12. 工资10000元,应该交多少税?
  13. flex里播放声音的方法
  14. ThinkPHP无限分类模块设计
  15. CorelDRAWX4的VBA插件开发(三)VBA的必用基础知识
  16. 什么是WEBService,实现WEBService有哪些框架
  17. 仿秒秒测日历页面和部分功能
  18. CImage::Loda 方法加载图片失败,因为vs2013中该方法不支持中文变量
  19. matlab模糊建模设计,毕业设计matlab建模
  20. NOIP2009 pj

热门文章

  1. 韩语在线翻译图片识别_Text Scanner for Mac(ocr文字识别工具)
  2. 【四足机器人--支撑相足端反作用力预测】(5)ConvexMPCLocomotion代码解析
  3. matlab ss2ss,Zemax+DDE+toolbox+for+Matlab 该工具箱可实现matlab编程和zemax通信 - 下载 - 搜珍网...
  4. Python Scrapy中文教程,Scrapy框架快速入门
  5. ViewPage的使用与介绍
  6. Base16加密算法
  7. (翻译)折叠菜单(Accordion Menu)
  8. 阿里发布的Redis开发文档,涵盖了所有的redis操作
  9. 多电压等级计算机潮流计算,电力系统稳态分析教学心得
  10. unity视频教程【高清+精选】大放送