Android下实现静默安装指定APK

什么是静默安装?既是可以在不提示用户的情况下,进行APK的安装。

有的时候,根据业务需求,需要实现静默安装APK,但是Android提供的安装接口是需要提示用户的前提下安装。

以下提供一个静默安装的解决方案(通过执行命令行的方式实现,需ROOT权限):

new Thread() {
    public void run() {
    Process process = null;
    OutputStream out = null;
    InputStream in = null;
    try {
    // 请求root
    process = Runtime.getRuntime().exec("su");
    out = process.getOutputStream();
    // 调用pm命令安装,理论上是可以做任何事情
    out.write(("pm install -r " + currentTempFilePath + "\n").getBytes());
    in = process.getInputStream();
    int len = 0;
    byte[] bs = new byte[1024];
    while (-1 != (len = in.read(bs))) {
    String state = new String(bs, 0, len);
    if (state.equals("Success\n")) {
       //安装成功后的操作
         }
       }
    } catch (IOException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            if (out != null) {
                out.flush();
                out.close();
            }
            if (in != null) {
                in.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
  }
}.start();

Android下实现静默安装指定APK

时间: 2024-10-22 17:56:41

Android下实现静默安装指定APK的相关文章

分享下android下,静默安装的方法

代码如下: /** * 静默安装 * @param file * @return */ public boolean slientInstall(File file) { boolean result = false; Process process = null; OutputStream out = null; try { process = Runtime.getRuntime().exec("su"); out = process.getOutputStream(); Data

Android随笔之——静默安装、卸载

随笔之所以叫随笔,就是太随意了,说起来,之前的闹钟系列随笔还没写完,争取在十月结束之前找时间把它给写了吧.今天要讲的Android APK的静默安装.卸载.网上关于静默卸载的教程有很多,更有说要调用隐藏API,在源码下用MM命令编译生成APK的,反正我能力有限,没一一研究过,这里选择一种我试验成功的来讲. 静默安装.卸载的好处就是你可以偷偷摸摸,干点坏事什么的,哈哈~ 一.准备工作 要实现静默安装.卸载,首先你要有root权限,能把你的静默安装.卸载程序移动到system/app目录下. 1.用

linux CentOS7下快速静默安装Oracle11GR2数据库并创建实例

linux CentOS7下快速静默安装Oracle11GR2数据库并创建实例本文章适合已经熟悉安装过程,需要快速部署使用初学者建议分步学习:https://edu.51cto.com/course/15530.html linux.x64_11gR2_database_1of2.zip (oracle官网下载)linux.x64_11gR2_database_2of2.zip (oracle官网下载)rlwrap-0.42.tar.gz (51CTO下载里搜)三个安装包: 一.上传安装包 mk

Linux下Oracle11g静默安装

http://blog.sina.com.cn/s/blog_6b7ae4270101ns2v.html http://blog.csdn.net/tongzidane/article/details/43852705 1 操作系统及Oracle版本 Linux版本:Red Hat Enterprise Linux Server release 6.4 (Santiago)#more /etc/issue Oracle版本: 2 硬件环境检查 2.1 内存要求 至少1G,查看物理内存命令: #

linux下oracle静默安装---亲测可以安装

1.安装包yum  install   -y           yum installyum  install   -y           binutilsyum  install   -y           compat-libstdc++-33yum  install   -y           elfutils-libelfyum  install   -y           elfutils-libelf-develyum  install   -y           exp

Android 下得到 未安装APK包含信息 等

很多情况下,我们需要通过APK文件来得到它的一些信息. (此时此APK不一定被安装了) 0. 基础知识:可以通过android.content.Context的方法 getPackageManager()得到一个PackageManager实例.PackageManager有一个方法:PackageInfo getPackageArchiveInfo (String archiveFilePath, int flags):其中参数一:archiveFilePath.就是指一个APK文件绝对路径.

debian下利用aptitude安装指定版本的软件

以nvidia-kernel-dkms为例: 执行aptitude versions nvidia-kernel-dkms可以看到当前情况下,所有可用的版本: 如果想要安装340.65-2~bpo70+1这个版本,执行命令 aptitude install nvidia-kernel-dkms=340.65-2~bpo70+1 即可

Android下得到已安装Application信息

在上一篇blog中,谈到如何利用APK archive文件得到相应信息.(当时发现例如ProcessName,DataDir等信息,其实是无法得到的). 当前咱们看看如何通过系统取得已经安装的Application的相关信息. 0.基础知识:PackageManager class有一个方法:public abstract ApplicationInfo getApplicationInfo (String packageName, int flags)它向系统查询包名为:PackageName

Android 无需root实现apk的静默安装

转载请注明出处:http://blog.csdn.net/yyh352091626/article/details/50533137 Android的静默安装似乎是一个很有趣很诱人的东西,但是,用普通做法,如果手机没有root权限的话,似乎很难实现静默安装,因为Android并不提供显示的Intent调用,一般是通过以下方式安装apk: Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFi