创建文件夹

下载文件

InputStream is = null;

byte[] buf = new byte[2048];

int len = 0;

FileOutputStream fos = null;

OutputStream os = null;

if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {

//储存下载文件的目录

File dir = new File(destFileDir);

Log.e("文件路径", "====" + dir.getPath());

if (!dir.exists()) {

dir.mkdirs();

}

file = new File(dir, destFileName);

fos = new FileOutputStream(file);

isQ = false;

} else {

Uri uri = insertFileIntoMediaStore(destFileName);

os = resolver.openOutputStream(uri);

isQ = false;

}

try {

is = response.body().byteStream();

long total = response.body().contentLength();

long sum = 0;

while ((len = is.read(buf)) != -1) {

if (isQ) {

os.write(buf, 0, len);

} else {

fos.write(buf, 0, len);

}

sum += len;

// int progress = (int) (sum * 1.0f / total * 100);

int progress = (int) (sum * 1.0f * 100 / apkSize);

//下载中更新进度条

listener.onDownloading(progress, total);

}

fos.flush();

//下载完成

listener.onDownloadSuccess(file);

} catch (Exception e) {

listener.onDownloadFailed(e);

} finally {

try {

if (is != null) {

is.close();

}

if (fos != null) {

fos.close();

}

} catch (IOException e) {

}

}

如果不想这么麻烦  只需要在manifest中添加

android:requestLegacyExternalStorage = "true"

android 10 apk 存储适配,AndroidQ(10) 分区存储适配方法相关推荐

  1. Android 10 分区存储完全解析

    Android 10分区存储完全解析 一.Android 存储目录 1.1 内部存储 1.2 外部存储 1.2.1 外部私有存储 1.2.2 外部公共存储 1.3 使用Api 获取存储目录 二.And ...

  2. android 分区存储适配总结

    android 分区存储适配总结 一.分区存储概念 二.分区适配方案 1. 应用分区存储的文件访问规定 (1).应用专属目录 (2).共享目录文件 2.MediaStore API介绍 3.Stora ...

  3. Android 文件系统与Android11 分区存储

    一.Android文件系统 Android文件系统分为 内部存储(internal storage) 和外部存储(external storage) 1.1 用一个表格来直观对比一下两者: 1.2 应 ...

  4. 【错误记录】Android 低版本使用分区存储错误 ( 低版本存储不得使用 MediaStore )

    文章目录 一.报错信息 二.解决方案 Android 低版本系统中不能使用分区存储方式管理文件 ; 一.报错信息 在 Android 999 版本中使用 MediaStore 进行分区存储 ; /** ...

  5. 【Android 文件管理】分区存储 ( 分区存储机制 和 文件索引数据 )

    文章目录 一.Android 10 以前的存储机制 二.Android 10 及以后的分区存储机制 三.Android 10 中的存储过渡方案 四.文件索引数据库 五.相关文档资料 一.Android ...

  6. android增加内置存储分区,详解Android10的分区存储机制(Scoped Storage)适配教程

    1. 简介 大家应该都有过这样的体会,手机用着用着里面就充斥着各种不懂的文件夹和文件.甚至是连已经删除的软件的文件夹还存在. 为什么会发生的这样的问题呢? 因为google的缺席,导致android生 ...

  7. Android app更新适配安卓10、11版本

    Android app内部更新适配安卓10.11版本 前言 ​ App内部更新现在基本每个app中都有,由于安卓各大应用市场不统一,不像Ios那样只有一个应用商城.并且现在安卓已经更新到11版本了,中 ...

  8. Android Q(10.0)版本新特性和兼容性适配

    北京时间2019年3月14日Google正式对外发布Android Q Beta 1及预览版SDK,这意味着安卓开发者们又即将迎来一年一度的新版本适配工作了.Android Q 为开发者们带来了许多新 ...

  9. Android存储之分区存储适配

    一.Android存储分区介绍 1.简介 Android 存储分为内部存储(Internal storage)和外部存储(External storage).有许多用户认为外部存储意味着SD存储卡或外 ...

最新文章

  1. acl中in和out的区别
  2. 2fsk基于matlab的仿真,基于matlab的2ask、2psk、2fsk的仿真
  3. Yii 多应用多模块
  4. c++ new[] delete[]底层分析
  5. 双栈排序java_双栈排序(Java)
  6. Java黑皮书课后题第8章:**8.12(金融应用:计算税款)使用数组重写程序清单3-5,每个纳税人身份都有6种税率。每种税率都应用在某个特定范围内的可征税收入
  7. 指针、数组、函数阶段小结
  8. python+OpenCV图像处理(五)图像的阈值分割
  9. 自动化测试常用python库_Python自动化测试常用库
  10. tornado 坑集合
  11. 输入这个命令之后,FinalShell连接不上地推主机了
  12. 支付宝,微信在没网络的情况下还能支付,是如何实现的?需要什么支持?
  13. ABP vnext 未通过Token访问接口时显示HTML,调整为跳转403和提示
  14. Python学习笔记之 高级变量类型 列表,元组,字典,字符串的相关常用 操作
  15. 刚从 Nova 生出来的 Placement 是什么东西?
  16. bzoj3435 [Wc2014]紫荆花之恋
  17. 51单片机最小系统的检查
  18. 天网防火墙V2.61学习教程
  19. 【408预推免复习】计算机网络(谢希仁第七版)第三章——数据链路层
  20. PDF提取图片(错误纠正)

热门文章

  1. Linux X64下汇编学习:C语言调用汇编代码,汇编中调用C语言函数
  2. 导出指定字符集dmp文件_Oracle 11G数据库导入导出终极解决方案
  3. python中headers的作用_爬虫入门到精通-headers的详细讲解(模拟登录知乎)
  4. javascript之正则表达式
  5. python--(pickle)文件读写
  6. java输出 4 7什么意思_Java学习4_一些基础4_输入输出_16.5.7
  7. mysql中示例库安装_MySQL 官方示例数据库安装
  8. 输入学号姓名输出学号姓名c语言,急啊!!!求救了 C语言编一个链表,输出姓名和学号就好...
  9. GCC和TCC编译TCC
  10. Unity面试题精选(1)