Android 静默安装/后台安装
2016-04-19 10:50
531 查看
Android实现静默安装其实很简单,今天在网上找资料找半天都说的很复杂,什么需要系统安装权限、调用系统隐藏的api、需要系统环境下编译、需要跟systemUI同进程什么的。我不知道他们真的实现了静默安装没有,反正我按照他们的方式统统都失败了。
下面我来说说我的静默安装实现方式,亲测效果跟豌豆荚一样,并且实现起来非常简单:
1.支持静默安装的机器必须Root,这个不需要我多讲了。
2.使用pm指令安装即可。
3.特别注意 PM指令不支持中文,也就说路径中有中文会导致安装失败!
关键代码如下:
execRootCmdSilent("pm install -r " + Environment.getExternalStorageDirectory().getPath()+"/xxx.apk")
不需要在Manifest中声明任何权限
下面我来说说我的静默安装实现方式,亲测效果跟豌豆荚一样,并且实现起来非常简单:
1.支持静默安装的机器必须Root,这个不需要我多讲了。
2.使用pm指令安装即可。
3.特别注意 PM指令不支持中文,也就说路径中有中文会导致安装失败!
关键代码如下:
execRootCmdSilent("pm install -r " + Environment.getExternalStorageDirectory().getPath()+"/xxx.apk")
public int execRootCmdSilent(String cmd) { int result = -1; DataOutputStream dos = null; try { Process p = Runtime.getRuntime().exec("su"); dos = new DataOutputStream(p.getOutputStream()); Log.i(TAG, cmd); dos.writeBytes(cmd + "\n"); dos.flush(); dos.writeBytes("exit\n"); dos.flush(); p.waitFor(); result = p.exitValue(); } catch (Exception e) { e.printStackTrace(); } finally { if (dos != null) { try { dos.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; }
不需要在Manifest中声明任何权限
相关文章推荐
- Android截取视频帧并转化为Bitmap示例
- Android 图片处理(一)
- 人脸矫正之人眼检测实例(Android)
- Android 中个别机型运行完崩溃出现UnsatisfiedLinkError 错误的原因及解决方案
- 高效加载大图
- android-修改TextView中部分文字的颜色
- 优化android studio编译效率的方法
- Android下使用Properties文件保存程序设置
- 关于 Android 进程保活,你所需要知道的一切
- 关于Android Studio里的Gradle,你所需要知道的都在这里了
- Android拍照或相册获取照片上传 (带图片剪裁)
- IDA动态调试so库
- android 禁用点击事件的三个属性
- Android Json的使用(2) 使用Jackson解析和生成json
- Android实现登录界面和功能实例
- android proguard
- Android Studio Tips Of the Day
- Android软键盘隐藏,遮挡EidtText解决办法
- Android客户端与服务器端数据交互之——字符串拼接
- Android Framework-Tools adb keyevent