OkGo上传文件和下载文件
发布日期:2021-06-28 19:37:23
浏览次数:2
分类:技术文章
本文共 5931 字,大约阅读时间需要 19 分钟。
一.下载文件
String apkName = TimeUtil.getSystem() + ".apk";//下载APK的名字,目前名字暂定为时间,等和后台确认协议后再修改 WaitDialog.Builder builder = new WaitDialog.Builder(this).setMessage("准备下载"); BaseDialog dialog = builder.show(); String url = "https://pack.qiyutianxia.com/gamepacks/S-wxcqbfb.apk";//一个可以下载APK测试网址 OkGo.get(url).tag(this).execute(new FileCallback(DirKeys.DIR_APP_UPDATE, apkName) { @Override public void onSuccess(Response response) { builder.setMessage("下载完成"); dialog.dismiss(); /*下载完成后直接安装*/ AppUtils.installApp(response.body()); } @Override public void onError(Response response) { super.onError(response); ToastUtils.error(getString(R.string.apkerror, response.message())); dialog.dismiss(); } @Override public void downloadProgress(Progress progress) { super.downloadProgress(progress); builder.setMessage("下载进度\n" + progress.currentSize / BasicKeys.KB + "KB/" + progress.totalSize / BasicKeys.KB + "KB"); } });
二.BasicKeys
public class BasicKeys { /******************** 存储相关常量 ********************/ /** * Byte与Byte的倍数 */ public static final int BYTE = 1; /** * KB与Byte的倍数 */ public static final int KB = 1024; /** * MB与Byte的倍数 */ public static final int MB = 1048576; /** * GB与Byte的倍数 */ public static final int GB = 1073741824; /** * 毫秒与毫秒的倍数 */ public static final int MSEC = 1; /******************** 时间相关常量 ********************/ /** * 秒与毫秒的倍数 */ public static final int SEC = 1000; /** * 分与毫秒的倍数 */ public static final int MIN = 60000; /** * 时与毫秒的倍数 */ public static final int HOUR = 3600000; /** * 天与毫秒的倍数 */ public static final int DAY = 86400000; /******************** 常量 ********************/ public static final int KEY_0 = 0; public static final int KEY_1 = 1; public static final int KEY_2 = 2; public static final int KEY_3 = 3; public static final int KEY_4 = 4; public static final int KEY_5 = 5; public static final int KEY_6 = 6; public static final int KEY_7 = 7; public static final int KEY_8 = 8; public static final int KEY_9 = 9; public static final int KEY_10 = 10; public static final int KEY_11 = 11; public static final int KEY_12 = 12; public static final int KEY_13 = 13; public static final int KEY_14 = 14; public static final int KEY_15 = 15; public static final int KEY_16 = 16; public static final int KEY_17 = 17; public static final int KEY_18 = 18; public static final int KEY_19 = 19; public static final int KEY_20 = 20; public static final int KEY_200 = 200; public static final int KEY_500 = 500; public static final int KEY_404 = 404; public static final String KEY_NO_SPACE = ""; public static final String KEY_ONE_SPACE = " "; public static final String KEY_SEPARATOR= "/"; public static final String KEY_NEXT= "\n"; public static final String KEY_QUESTION = "?"; public static final String KEY_AND = "&"; public static final String KEY_COLON= ": "; public static final String KEY_EQUAL= "="; public static final String KEY_UTF8= "UTF-8"; public static final String KEY_NULL= "数据为空"; public static final String KEY_USE_API= "调用网络接口"; public static final String KEY_NOT_EXIST= "不存在"; public static final String KEY_DATA_ERROR= "传入参数错误!"; public static final String KEY_EXCEPTION= "出现异常"; public static final String KEY_NOT_NET= "无网络"; public static final String KEY_ACTION_MAIN="android.intent.action.MAIN"; public static final String KEY_FILE = "file"; public static final String HTTP = "http://"; public static final String COLON = ":"; public static final String COMMA = ",";}
三.上传文件
实战:
WaitDialog.Builder builder = new WaitDialog.Builder(mActivity).setMessage("视频上传"); builder.show(); File file = new File(url); if (mActivity instanceof InspectionActivity) { InspectionActivity inspectionActivity = (InspectionActivity) mActivity; lineNumber = inspectionActivity.getLineNumber(); } OkGo.>post(Api.getuploadVideoUrl()) .params("file", file) .params(Api.TEST_LINE_NUMBER, lineNumber) // TODO: 2020-10-27 暂时写死,用于测试 .params(Api.SERIAL_NUMBER, "3604252010220002") .params(Api.CUR_TEST_TIMES, "1")// .params(Api.SERIAL_NUMBER, carInfo.getSerialNumber())// .params(Api.CUR_TEST_TIMES, carInfo.getTestingTimes()) .params("item ", item.getCode())//视频代号 .execute(new JsonCallback >() { @Override public void TokenOut() { } @Override public void onSuccess(Response > response) { super.onSuccess(response); if (response.body().isSuccess()) { builder.setMessage("视频上传成功").dismiss(); item.setUrl(url); item.setUploadStatus(1); videoItemAdapter.notifyDataSetChanged(); } else { ToastUtils.error(getString(R.string.uploaderror, response.message())); builder.dismiss(); item.setUploadStatus(2); videoItemAdapter.notifyDataSetChanged(); } } @Override public void onError(Response > response) { super.onError(response); ToastUtils.error(getString(R.string.uploaderror, response.message())); builder.dismiss(); item.setUploadStatus(2); videoItemAdapter.notifyDataSetChanged(); } @Override public void uploadProgress(Progress progress) { super.uploadProgress(progress); //上传进度 builder.setMessage("上传进度\n" + progress.currentSize / BasicKeys.KB + "KB/" + progress.totalSize / BasicKeys.KB + "KB"); } });
转载地址:https://blog.csdn.net/xxdw1992/article/details/108766956 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年04月09日 05时33分40秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
安卓app开发框架!写给即将正在找工作的Android攻城狮,成功入职阿里
2019-04-29
安卓app开发环境搭建!Android最强保活黑科技的最强技术实现,完整PDF
2019-04-29
安卓app软件开发教程!免费Android高级工程师学习资源,值得收藏!
2019-04-29
安卓chrome插件开发!Android架构师教你如何突破瓶颈,跳槽薪资翻倍
2019-04-29
安卓rom开发教程!跟Android初学者分享几点经验,写给正在求职的安卓开发
2019-04-29
原理解析!2021年教你增加拿到BAT等大厂offer几率,offer拿到手软
2019-04-29
原生安卓开发!驱动核心源码详解和Binder超系统学习资源,实战篇
2019-04-29
大牛手把手带你!2021年Android进阶者的新篇章,完整PDF
2019-04-29
太牛了!Android程序员最大的悲哀是什么?面试真题解析
2019-04-29
作为字节跳动面试官,BAT这种大厂履历意味着什么?赶快收藏备战金九银十!
2019-04-29
大牛深入讲解!Android面试中常问的MMAP到底是啥东东?再不刷题就晚了!
2019-04-29
太赞了!你会的还只有初级安卓工程师的技术吗?3面直接拿到offer
2019-04-29
腾讯Android开发面试记录,安卓系列学习进阶视频
2019-04-29
阿里P8架构师的Android大厂面试题总结,醍醐灌顶!
2019-04-29
阿里、腾讯大厂Android面试必问知识点系统梳理,满满干货指导
2019-04-29
阿里大神最佳总结Flutter进阶学习笔记,内容太过真实
2019-04-29
阿里巴巴内部Jetpack宝典意外流出!送大厂面经一份!
2019-04-29
阿里正式启动2021届春季校招!字节跳动Android面试凉凉经,实战解析
2019-04-29
阿里珍藏版Android框架体系架构手写文档,原理+实战+视频+源码
2019-04-29
零基础也能看得懂!2021中级Android开发面试解答,附赠课程+题库
2019-04-29