android 10 apk 存储适配,AndroidQ(10) 分区存储适配方法
创建文件夹
下载文件
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) 分区存储适配方法相关推荐
- Android 10 分区存储完全解析
Android 10分区存储完全解析 一.Android 存储目录 1.1 内部存储 1.2 外部存储 1.2.1 外部私有存储 1.2.2 外部公共存储 1.3 使用Api 获取存储目录 二.And ...
- android 分区存储适配总结
android 分区存储适配总结 一.分区存储概念 二.分区适配方案 1. 应用分区存储的文件访问规定 (1).应用专属目录 (2).共享目录文件 2.MediaStore API介绍 3.Stora ...
- Android 文件系统与Android11 分区存储
一.Android文件系统 Android文件系统分为 内部存储(internal storage) 和外部存储(external storage) 1.1 用一个表格来直观对比一下两者: 1.2 应 ...
- 【错误记录】Android 低版本使用分区存储错误 ( 低版本存储不得使用 MediaStore )
文章目录 一.报错信息 二.解决方案 Android 低版本系统中不能使用分区存储方式管理文件 ; 一.报错信息 在 Android 999 版本中使用 MediaStore 进行分区存储 ; /** ...
- 【Android 文件管理】分区存储 ( 分区存储机制 和 文件索引数据 )
文章目录 一.Android 10 以前的存储机制 二.Android 10 及以后的分区存储机制 三.Android 10 中的存储过渡方案 四.文件索引数据库 五.相关文档资料 一.Android ...
- android增加内置存储分区,详解Android10的分区存储机制(Scoped Storage)适配教程
1. 简介 大家应该都有过这样的体会,手机用着用着里面就充斥着各种不懂的文件夹和文件.甚至是连已经删除的软件的文件夹还存在. 为什么会发生的这样的问题呢? 因为google的缺席,导致android生 ...
- Android app更新适配安卓10、11版本
Android app内部更新适配安卓10.11版本 前言 App内部更新现在基本每个app中都有,由于安卓各大应用市场不统一,不像Ios那样只有一个应用商城.并且现在安卓已经更新到11版本了,中 ...
- Android Q(10.0)版本新特性和兼容性适配
北京时间2019年3月14日Google正式对外发布Android Q Beta 1及预览版SDK,这意味着安卓开发者们又即将迎来一年一度的新版本适配工作了.Android Q 为开发者们带来了许多新 ...
- Android存储之分区存储适配
一.Android存储分区介绍 1.简介 Android 存储分为内部存储(Internal storage)和外部存储(External storage).有许多用户认为外部存储意味着SD存储卡或外 ...
最新文章
- acl中in和out的区别
- 2fsk基于matlab的仿真,基于matlab的2ask、2psk、2fsk的仿真
- Yii 多应用多模块
- c++ new[] delete[]底层分析
- 双栈排序java_双栈排序(Java)
- Java黑皮书课后题第8章:**8.12(金融应用:计算税款)使用数组重写程序清单3-5,每个纳税人身份都有6种税率。每种税率都应用在某个特定范围内的可征税收入
- 指针、数组、函数阶段小结
- python+OpenCV图像处理(五)图像的阈值分割
- 自动化测试常用python库_Python自动化测试常用库
- tornado 坑集合
- 输入这个命令之后,FinalShell连接不上地推主机了
- 支付宝,微信在没网络的情况下还能支付,是如何实现的?需要什么支持?
- ABP vnext 未通过Token访问接口时显示HTML,调整为跳转403和提示
- Python学习笔记之 高级变量类型 列表,元组,字典,字符串的相关常用 操作
- 刚从 Nova 生出来的 Placement 是什么东西?
- bzoj3435 [Wc2014]紫荆花之恋
- 51单片机最小系统的检查
- 天网防火墙V2.61学习教程
- 【408预推免复习】计算机网络(谢希仁第七版)第三章——数据链路层
- PDF提取图片(错误纠正)
热门文章
- Linux X64下汇编学习:C语言调用汇编代码,汇编中调用C语言函数
- 导出指定字符集dmp文件_Oracle 11G数据库导入导出终极解决方案
- python中headers的作用_爬虫入门到精通-headers的详细讲解(模拟登录知乎)
- javascript之正则表达式
- python--(pickle)文件读写
- java输出 4 7什么意思_Java学习4_一些基础4_输入输出_16.5.7
- mysql中示例库安装_MySQL 官方示例数据库安装
- 输入学号姓名输出学号姓名c语言,急啊!!!求救了 C语言编一个链表,输出姓名和学号就好...
- GCC和TCC编译TCC
- Unity面试题精选(1)