Android中的app静默安装

来源:互联网 发布:lol英雄详细数据 编辑:程序博客网 时间:2024/04/26 17:44

静默安装

所谓静默安装,就是指在用户不之情的情况下安装app,打开app,卸载app.

  • 需要在一个app中利用网络请求下载另一个需要静默安装的app
  • 需要用到RootTools.jar这个Lib包
  • 利用xUtils中的http来下载.apk文件
  • *最后通过命令安装,打开,卸载,删除apk.

静默安装具体代码的实现

MainActivity中的初始化中调用一下方法        HttpUtils http = new HttpUtils();        http.download("http://192.168.1.100:8080/xxx.apk", "/mnt/sdcard/jmlt.apk", new RequestCallBack<File>() {            @Override            public void onSuccess(ResponseInfo<File> arg0) {                //下载成功                System.out.println("onSuccess");                //3, 打开apk                //4, 卸载apk                  //静默安装                try {                    Runtime.getRuntime().exec("su");                    //下面的命令依附在su管理员命令里                    //2, 安装apk                    RootTools.sendShell("pm install /mnt/sdcard/xxx.apk", 5000);                    //3, 打开apk                    RootTools.sendShell("am start -n com.xiaohao.xxx/com.xiaohao.xxx.MainActivity", 5000);                    //4, 卸载apk                    RootTools.sendShell("pm uninstall com.xiaohao.xxx", 5000);                    //5,删除安装包apk                    RootTools.sendShell("rm -r /mnt/sdcard/xxx.apk", 5000);                    /*new Thread(){                        public void run() {                            //4, 卸载apk                            try {                                SystemClock.sleep(10000);//10秒后 删除app                                RootTools.sendShell("pm uninstall com.xiaohao.xxx", 5000);                                //5,删除安装包apk                                RootTools.sendShell("rm -r /mnt/sdcard/xxx.apk", 5000);                            } catch (IOException e) {                                // TODO Auto-generated catch block                                e.printStackTrace();                            } catch (RootToolsException e) {                                // TODO Auto-generated catch block                                e.printStackTrace();                            } catch (TimeoutException e) {                                // TODO Auto-generated catch block                                e.printStackTrace();                            }                        };                    }.start();*/                } catch (IOException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                } catch (RootToolsException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                } catch (TimeoutException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                }            }            @Override            public void onFailure(HttpException arg0, String arg1) {                System.out.println("onFailure");                //下载失败                System.out.println(arg0);            }        });    }

备注

最后要记得在清单文件中添加上网权限和访问文件夹的权限,否则静默安装不成功.

个人博客:http://blog.csdn.net/guohaosir.

0 0
原创粉丝点击