App下载、静默安装并自启动

前不久遇到一个需求,说是要实现app的静默安装并且安装完了之后要能够自启动。我上网查了很多资料,方法基本都差不多,但是基本上每种方法我都试过了,能够实现静默安装,但是自启动的时候就遇到了问题。很多类似的博客下面几乎都有人提问说为啥不能够自启动。我当时在操作的时候也发现自启动失败,后来我反复推敲尝试实现了这个功能,大多数博客介绍的方法是没有问题的,问题在于博主没有把过程讲述得很清楚,从而给读者造成了误解,特此发文一篇希望帮助广大受阻的读者。

静默更新这个需求是有一定的前提的,一般这类的需求只会出现在一些厂商定制的pad或特定设备上面,系统要给足了root权限,手机上有一类做法可以在不需要root权限的前提下实现更新,但模式算不得静默更新,当然这不是我们今天要讨论的问题,我也就不在这里多说了。

一、安装包下载

安装包下载相关的文章数不胜收,主要是代码涉及静默安装,我这里就把我的代码拿出来做个参考吧。
public class DownLoadUtils {

    public static void download(final String apkUrl) {
        Thread thread;
        thread = new Thread(new Runnable() {
            @Override
            public void run() {
                downloadFile(apkUrl);
            }
        });
        thread.start();
    }

    //下载apk
    public static File downloadFile(String apkUrl) {
        final String fileName = "update.apk";
        File tmpFile = new File("/sdcard/update");
        if (!tmpFile.exists()) {
            tmpFile.mkdir();
        }
        final File file = new File("/sdcard/update/" + fileName);
        try {
            URL url = new URL(apkUrl);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            InputStream is = conn.getInputStream();
            FileOutputStream fos = new FileOutputStream(file);
            byte[] buf = new byte[1024];
            conn.connect();
            double count = 0;
            if (conn.getResponseCode() >= 400) {
                //连接超时
            } else {
                while (count <= 100) {
                    Log.e("install", "download" + count + "");
                    if (is != null<
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值