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);
}

下载安装APK的更多相关文章

  1. 下载安装APK(兼容Android7.0)

    我们使用手机的时候经常会看到应用程序提示升级,大部分应用内部都需要实现升级提醒和应用程序文件(APK文件)下载. 一般写法都差不多,比如在启动app的时候,通过api接口获得服务器最新的版本号,然后和 ...

  2. 基于nginx实现二维码下载安装apk文件

    将apk文件置于nginx目录下 <!--进入nginx安装路径--> /usr/local/nginx <!--新建放apk的目录--> mkdir -p resources ...

  3. android 开发 程序中下载安装APK文件 问题汇总 解析程序包时出现问题

    1 若把APK文件保存到应用程序的files目录下,则一定注意保存时使用 FileOutputStream os = openFileOutput(fileName, MODE_WORLD_READA ...

  4. 扫描二维码下载安装apk的app

    将apk文件放到服务器上,下载链接直接生成二维码,用微信扫描时不能直接下载.页面只是刷新一下. 想实现微信扫描下载apk的app客户端,需要把下载链接做到一个网页上, 将网页生成一个二维码. 直接下载 ...

  5. 安卓(Android)手机如何安装APK?

    我大天朝的安卓手机只能在一个被阉割的APP市场里玩耍,有些APP可能需要直接安装APK文件.APK 是 Android Package (安卓安装包)安卓手机如何安装APK呢? 在电脑上下载安装APK ...

  6. 下载更新文件后,调用安装器自动安装apk文件

    在更新操作时,下载新apk之后,往往需要自动安装新apk,用以下代码即可安装下载在本地的apk文件(apkFile) Intent intent = new Intent(); intent.setA ...

  7. 下载apk安装包后,调用安装器自动安装apk(适配7.0)

    在更新操作时,下载新apk之后,往往需要自动安装新apk,用以下代码即可安装下载在本地的apk文件(apkFile) Intent intent = new Intent(); intent.setA ...

  8. Monkey学习(3)如何在Android模拟器中安装apk

    1.运行SDK Manager,选择模拟器,并运行模拟器,我这里用的是已经配置好的模拟器“RedMI” 2.已启动好的模拟器“RedMI” 3.记住需要安装apk文件的位置,我这里放在了F盘的根目录下 ...

  9. android-exploitme(二):安装apk熟悉测试环境

    今天我们来熟悉测试环境: 1. 下载server代码,并运行 git clone https://github.com/SecurityCompass/LabServer.git 2. 这个serve ...

随机推荐

  1. 【转】java URLConnection从网上下载图片或音乐

    try { //根据String形式创建一个URL对象,   URL url = new URL("http://www.baidu.com");   //实列一个URLconne ...

  2. 八大排序算法之五--交换排序—冒泡排序(Bubble Sort)

    基本思想: 在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒.即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将 ...

  3. YTU 2925: 文件操作--文本文件读入

    2925: 文件操作--文本文件读入 时间限制: 1 Sec  内存限制: 128 MB 提交: 38  解决: 16 题目描述 现有100名学生的姓名(name).学号(num).英语(Englis ...

  4. JAVA中生成Excel方法

    java 操作 Excel 最常用的就是JXL(java excel api)和POI,今先看下JXL吧.首先可以到 http://www.andykhan.com/jexcelapi/downloa ...

  5. mysql计划任务

    这两天一直遇见mysql计划任务的案例,今天我就给大家分享一个真是的实例: 1.创建计划任务的语法: create event 任务名称 on schedule  at 时间周期 starts '年- ...

  6. C#单击按钮显示图片,带开始停止

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...

  7. 【leetcode❤python】 223. Rectangle Area

    #-*- coding: UTF-8 -*-#先判断是否有重叠class Solution(object):    def computeArea(self, A, B, C, D, E, F, G, ...

  8. JavaScript语法(一)

    JavaScript 用法 HTML 中的脚本必须位于 <script> 与 </script> 标签之间. 脚本可被放置在 HTML 页面的 <body> 和 & ...

  9. Logical Databases逻辑数据库

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  10. 选择屏幕(Selection Screen)

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...