04/24
2013

Android常用代码之普通及系统权限静默安装APK

本文主要介绍程序如何安装apk,包括普通模式安装和系统权限静默安装。

如果是非系统应用请直接查看:Android常用代码之APK root权限静默安装,查看更完美的解决方案。

 

1、普通模式安装,调用系统Intent,代码如下:

 

2、静默安装
如果是非系统应用请移步:Android常用代码之APK root权限静默安装,查看更完美的解决方案。

分为如下三步
(1)、静默安装需要系统应用安装权限,需要在AndroidManifest.xml中添加

 

(2)、实现代码
静默安装代码如下,实际是通过pm install -r 命令安装。
注意:该函数最好在新建的线程中运行并通过handler发送安装结果给主线程,否则安装时间较长会导致ANR。

返回值0表示安装成功,1表示文件不存在,2表示其他错误。需要更丰富的安装失败信息(内存不足、解析包出错)可直接使用PackageUtils.installSlient

 

(3) 、获取系统权限
完成了上面两步后,普通方式安装我们的应用仍然无法静默安装。需要我们的应用获得系统权限,编译应用并通过
adb push <your_apk_path> /system/app/
命令实现安装,即可拥有系统权限。

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

47 thoughts on “Android常用代码之普通及系统权限静默安装APK

  1. 您好,我有个问题想请教您,就是我在做一个程序,就是要实现静默安装,我使用了您写的代码,但是我总会碰到一个不可解决的问题,这个问题困扰我好久了,就是在shellUtils里execCommand这个函数,用了Runtime.getRuntime().exec(isRoot ? COMMAND_SU : COMMAND_SH);可是我的程序经常会卡死在Runtime.getRuntime().exec(‘su’)这句话里,这个问题该怎么解决呢?

  2. (3)中,“系统权限”指root权限吗?”完成了上面两步后,普通方式安装我们的应用仍然无法静默安装“是什么意思?我的手机已经root过了,前两步静默安装时,应用申请root权限,我点击确定后,完成了静默安装。使用“adb push /system/app/“命令就可以不申请root权限吗?那是先执行push命令呢?还是先执行installSlient方法呢?