• 下载安装APK


    protected void downloadApk() {
            //apk下载链接地址,放置apk的所在路径
            
            //1,判断sd卡是否可用,是否挂在上
            if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
                //2,获取sd路径
                String path = Environment.getExternalStorageDirectory().getAbsolutePath()
                        +File.separator+"mobilesafe74.apk";
                //3,发送请求,获取apk,并且放置到指定路径
                HttpUtils httpUtils = new HttpUtils();
                //4,发送请求,传递参数(下载地址,下载应用放置位置)
                httpUtils.download(mDownloadUrl, path, new RequestCallBack<File>() {
                    @Override
                    public void onSuccess(ResponseInfo<File> responseInfo) {
                        //下载成功(下载过后的放置在sd卡中apk)
                        Log.i(tag, "下载成功");
                        File file = responseInfo.result;
                        //提示用户安装
                        installApk(file);
                    }
                    @Override
                    public void onFailure(HttpException arg0, String arg1) {
                        Log.i(tag, "下载失败");
                        //下载失败
                    }
                    //刚刚开始下载方法
                    @Override
                    public void onStart() {
                        Log.i(tag, "刚刚开始下载");
                        super.onStart();
                    }
                    
                    //下载过程中的方法(下载apk总大小,当前的下载位置,是否正在下载)
                    @Override
                    public void onLoading(long total, long current,boolean isUploading) {
                        Log.i(tag, "下载中........");
                        Log.i(tag, "total = "+total);
                        Log.i(tag, "current = "+current);
                        super.onLoading(total, current, isUploading);
                    }
                });
                
            }
        }
    
        /**
         * 安装对应apk
         * @param file    安装文件
         */
        protected void installApk(File file) {
            //系统应用界面,源码,安装apk入口
            Intent intent = new Intent("android.intent.action.VIEW");
            intent.addCategory("android.intent.category.DEFAULT");
            /*//文件作为数据源
            intent.setData(Uri.fromFile(file));
            //设置安装的类型
            intent.setType("application/vnd.android.package-archive");*/
            intent.setDataAndType(Uri.fromFile(file),"application/vnd.android.package-archive");
    //        startActivity(intent);
            startActivityForResult(intent, 0);
        }
    //开启一个activity后,返回结果调用的方法
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            enterHome();
            super.onActivityResult(requestCode, resultCode, data);
        }
  • 相关阅读:
    浅拷贝与深拷贝
    Hibernate入门(1)-第一个Hibernate程序
    Spring入门(10)-Spring JDBC
    【Java,IDEA】创建自己的代码模版快速生成
    【Java,IDEA】使用IDEA自动生成序列化ID
    【Project】原生JavaWeb工程 02 登陆业务的流程(第一阶段样例)
    【AJAX】Asynchronous JavaScript And XML (非同步的JS & XML)
    【JS】06 语法补充
    【JS】05 DOM 文档对象模型 P2 元素的CRUD、Dom集合对象
    【JS】04 DOM 文档对象模型 P1 查找元素、改变内容、绑定事件
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/6215787.html
Copyright © 2020-2023  润新知