一. 安卓 10 储存特性

Android 10 所带来的关于存储上的变更遵循了以下三个基本原则

  • 更好的从属性: 系统知道哪些文件属于哪些应用,这可以让用户更方便地管理他们的文件。当应用被卸载后,除非用户需要,否则应用之前所创建的文件也不应该保留在设备上;
  • 保护应用数据: 当一个应用将它所属的文件写入外部存储时,这些文件是不应该被其他应用所访问的;
  • 保护用户数据: 当用户下载了一些文件,比如带有敏感信息的邮件附件,这些文件应该对其他应用不可见

二.强制执行分区储存

在 Android 11 上运行但以 Android 10(API 级别 29)为目标平台的应用仍可请求 requestLegacyExternalStorage 属性。应用可以利用此标记暂时停用与分区存储相关的变更,例如授予对不同目录和不同类型的媒体文件的访问权限。当您将应用更新为以 Android 11 为目标平台后,系统会忽略 requestLegacyExternalStorage 标记。

以下是我保存文件的方法:

//保存文件
private fun saveImageToExternalStorage(bytes: ByteArray) {val root =Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString()val myDir = File("$root/saved_images")myDir.mkdirs()val generator = Random()var n = 10000n = generator.nextInt(n)val fname = "个人报告.pdf"val file = File(myDir, fname)if (file.exists()) file.delete()try {val out = FileOutputStream(file) //指定写到哪个路径中val fileChannel: FileChannel = out.channelfileChannel.write(ByteBuffer.wrap(bytes)) //将字节流写入文件中fileChannel.force(true) //强制刷新fileChannel.close()} catch (e: Exception) {e.printStackTrace()}// Tell the media scanner about the new file so that it is// immediately available to the user.MediaScannerConnection.scanFile(this, arrayOf(file.toString()), null) { path, uri ->Log.i("ExternalStorage", "Scanned $path")Log.i("ExternalStorage", "-> uri=$uri")shareSingleImage(uri)}
}//分享文件
private fun shareSingleImage(imageUri: Uri) {val shareIntent = Intent()shareIntent.action = Intent.ACTION_SENDshareIntent.putExtra(Intent.EXTRA_STREAM, imageUri)shareIntent.type = ("*/*")startActivity(Intent.createChooser(shareIntent, "分享到:"))
}

安卓 11 文件储存相关推荐

  1. apk解包工具 安卓_MT管理器最新2.9.3版支持ROOT后安卓10安卓11文件修改替换

    说起安卓root后文件管理器,很多人似乎还记得之前的RE管理器,从安卓2.0开始似乎就开始兴起,RE管理器一直承载着传统管理器的全部用户,还新增支持root后修改手机的任务,但RE管理器后面不知道什么 ...

  2. 安卓11 Sdcard文件读取权限问题

    谷歌在安卓11更新了外部储存设备读写规范问题. 在这里给新手进行一下排雷 首先用 file.exists() 判断文件是否可以读写是不可取的,因为新版本安卓中判断文件存在和能否读取权限是不一样的. 如 ...

  3. 安卓 多条通知_安卓11第一版发布:原生滚动截屏、屏幕录像、抄国内ROM这么多...

    自2008年第一部Android智能手机HTC G1发布,安卓手机系统已经走过十几个年头.虽然系统存在一些大家吐槽较多的问题,但安卓一直活跃在智能手机系统前沿,不断发展完善着. 昨天谷歌刚刚发布了全新 ...

  4. 内存卡android文件夹名称,安卓手机内存卡文件夹英文名称解析——第三方应用类...

    安卓手机内存卡文件夹英文名称解析--第三方应用类: 1..mobo:Moboplayer的缓存文件. 2..QQ:QQ的缓存文件,需要定期清除. 3..quickoffice:quickoffice的 ...

  5. 华为安卓11是鸿蒙系统吗,恭喜华为手机,EMUI11曝光,是披着Android 11的“鸿蒙系统”?...

    原标题:恭喜华为手机,EMUI11曝光,是披着Android 11的"鸿蒙系统"? 华为手机的全球手机用户大约有4.7亿部,正像网友调侃的那样,铃声一响,遍地都是华为手机.华为手机 ...

  6. coloros11跟Android,安卓10与安卓11究竟差异在哪里?我们拿这两台新机试了一下

    9 月 24 日,OPPO 带着全新的 ColorOS 11 与我们正式见面,这一基于安卓 11 底层深度打造的新系统给我们带来了不少新特性.而就在 ColorOS 11 发布的前些天,华为也为我们带 ...

  7. radiobutton 设置为不能点击_谷歌要求:安卓 11 相机默认不能设置为“美颜”模式...

    IT之家7月19日消息 随着计算摄影的兴起,智能手机相机拍摄的照片越来越脱离现实.无论是由于创意的色彩平衡,合成多张高清照片,使用AI塑造细节和清晰度,还是更常见的相机"美颜"增强 ...

  8. termux 安装mysql 并运行b站爬虫入库 安卓11(手机上跑定时python爬虫)

    运行环境 python3.9.6 +MariaDB(termux官方封装安装顺利) 1. 安装python #安装python3 pkg install python -y #查看版本 python ...

  9. android11obb,exagear安卓11数据包obb

    软件简介 exagear安卓11数据包obb是一款独特的模拟器程序.软件有着很经典的游戏可以进行下载运行的,而且这些游戏通过它就可以在手机上进行体验到了.对于需要的用户来说有着很优质的服务体验.需要的 ...

最新文章

  1. hdfs源码分析第一弹
  2. SAP在快速消费品行业中的实施方案
  3. 台湾大学林轩田机器学习基石课程学习笔记2 -- Learning to Answer Yes/No
  4. 语言 标签倾斜 绘图_一文搞懂ggplot2:老板再也不用担心我的科研绘图
  5. 华为服务器如何开机自动启动不了,华为手机开不了机停在开机画面怎么办【详解】...
  6. C语言内存动态分配与释放
  7. 【w3cschool】Linux命令简单复习
  8. [转载] 把数据对象转成字符串_python入门基础培训教程,Python 字符串学习
  9. VB中输入函数InputBox的用法
  10. echarts自适应
  11. [ECCV2020]Beyond 3DMM Space: Towards Fine-grained 3D Face Reconstruction
  12. aida64怎么测试cpu稳定性_如何对超频内存和CPU进行稳定性测试(图文详细版α1.55*)...
  13. matlab车辆识别车辆检测项目系统源码16例
  14. 增值税发票查验平台网站时被拦截了怎么办?
  15. k8s之亲和性、反亲和性
  16. 没有安全删除硬件的解决
  17. linux开热点软件,Debian开WI-FI热点
  18. cdn转发防攻击_cdn可以防止攻击吗
  19. 佳片有约|《第六感生死缘》:生如夏花,死若秋叶的爱恋
  20. 什么硬盘保存时间长 硬盘的保存时间

热门文章

  1. Win10笔记本WIFI的标志突然变成了一个地球的解决方案(二)
  2. 公司财务系统html,什么是sap管理系统?
  3. Android适配虚拟按键-亲测华为小米手机有效
  4. 目标检测tricks(基于detectron2)
  5. pgAdmin4 汉化
  6. python networkx 导入CSV文件画关系网络图
  7. flink 1.14编译:flink-fs-hadoop-shaded找不到
  8. 微信小游戏开发零基础教程(一)-CocosCreator
  9. 微信小程序怎么添加到主屏幕将微信小程序放到手机桌面?
  10. android edittext底线,android – 更改edittext的底线颜色