Q版本:

1.在manifest 文件中添加权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<!-- 读取扩展存储,向扩展卡读取数据,用于读取缓存定位数据-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>

2.在application 添加

android:requestLegacyExternalStorage="true"

3.在对应的activity中添加 动态获取权限

private fun applyStoragePermission () {val permissionWrite = ContextCompat.checkSelfPermission(applicationContext, WRITE_EXTERNAL_STORAGE)val permissionRead = ContextCompat.checkSelfPermission(applicationContext, READ_EXTERNAL_STORAGE)if (permissionWrite != PackageManager.PERMISSION_GRANTED || permissionRead != PackageManager.PERMISSION_GRANTED) {//Toast.makeText(this, "正在请求权限", Toast.LENGTH_SHORT).show()//申请权限,特征码自定义为1,可在回调时进行相关判断ActivityCompat.requestPermissions(this@MainActivity,arrayOf(WRITE_EXTERNAL_STORAGE, READ_EXTERNAL_STORAGE),1)}}

获取存储空间:Environment.getExternalStorageDirectory();

判断有sd卡存储存在或者加载

Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED

/** 得到SD可用内存 **/
@SuppressLint("NewApi")
private String getSdFree(){if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ StatFs fs = new StatFs(Environment.getExternalStorageDirectory().getPath());//Android API18之前:fs.getAvailableBlocks()*fs.getBlockSize()return Formatter.formatFileSize(this, (fs.getAvailableBytes()));}return "未装载";
}

获取手机默认内置存储空间:

/** 得到系统可用内存 **/
@SuppressLint("NewApi")
private String getMemFree(){StatFs fs = new StatFs(Environment.getDataDirectory().getPath());return Formatter.formatFileSize(this, (fs.getAvailableBytes()));
}

android Q版本外部存储问题以及获取空间大小问题相关推荐

  1. Android Q版本应用兼容性适配指导

    目录 Android Q版本应用兼容性适配指导... 1 1.      背景说明... 4 2.      存储空间限制... 4 2.1背景     4 2.2兼容性影响... 5 2.3 适配指 ...

  2. 一文看懂:Android Q版本在安全方面进行了哪些系统性改进

    5月8日凌晨,2019年谷歌I/O开发者大会召开.谷歌下一代Android系统Android Q正式亮相,版本号是10.0.其实早在3月14日,谷歌就放出了Android Q的首个测试版. 那么,此次 ...

  3. android 源码分析 内置 sd storage,Android开罐头———外部存储与内部存储完全解析...

    context.getExternalFilesDir(),Environment.getExternalStorageDirectory(),傻傻分不清?到底什么算安卓手机的external sto ...

  4. android强制选择器,谷歌手软了:不再强制在Android Q采用隔离存储沙盒机制

    原标题:谷歌手软了:不再强制在Android Q采用隔离存储沙盒机制 IT之家4月26日消息 在Android Q的首个Beta版中,谷歌推出了一个隐藏的.激进的隔离存储沙盒机制,名为"Sc ...

  5. android 外部存储列表,如何获取Android设备的已安装外部存储列表

    我使用/ proc / mounts文件来获取可用存储选项的列表 public class StorageUtils { private static final String TAG = " ...

  6. 首批Android Q版本真机上线,Testin云测助力尝鲜

    2019年3月14日,Android 最新操作系统 Android Q beta 版本正式上线.Testin云测作为国内先进的应用服务平台,在第一时间完成了 Android Q beta 版本的手机系 ...

  7. 【Android 逆向】Android 系统文件分析 ( 外部存储设备文件 | sbin 命令程序目录 | dev 字符设备目录 )

    文章目录 一.外部存储设备文件 二.sbin 命令程序目录 三.dev 字符设备目录 一.外部存储设备文件 /sdcard 文件是一个链接 , 相当于快捷方式 , 其实际的目录是 /storage/s ...

  8. android 存储无法写入,在Android中的外部存储中写入文件

    我想在外部存储sdCard中创建一个文件并写入它.我已经通过互联网搜索并尝试但没有得到结果,我已经在Android Manifest文件中添加了权限,我在模拟器上这样做,我正在尝试下面的代码和获取ER ...

  9. Android Q中外部存储盘路径正则表达式的理解

    Android Q的ModernMediaScanner.java文件中以下两个正则表达式,具体该怎么解读? private static final Pattern PATTERN_VISIBLE ...

最新文章

  1. [JS]请给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组。
  2. java list三种遍历方法性能比較
  3. laya 怎么生成签名_什么是数字签名
  4. html冷门标签,html 冷门
  5. 自建裸金属实例Oracle RAC上云
  6. hihocoder 1015 : KMP算法(kmp)
  7. Gartner发布2020年十大战略科技发展趋势
  8. 合并果子(洛谷-P1090)
  9. python 正交矩阵_协方差矩阵的计算、PCA
  10. 瑞士科学家造出了撞不坏的无人机丨Science Robitics
  11. 浮点错误的意思-PAT 、OJ
  12. Pspice仿真实验B-2
  13. java数据类型之间的转换_Java数据类型之间的转换(转)
  14. Linux history命令
  15. 【Node.js】前端页面仔的必修课,认识node
  16. dell服务器卡在启动界面_戴尔最新bios设置图解 当电脑出现开机画面按F2进入
  17. java模拟多人接力赛跑_Java多线程--模拟接力赛跑
  18. 国际短信接口文档-json
  19. Intel迅驰之前世今生
  20. MDK中AT45DB161驱动程序

热门文章

  1. 《Python深度学习》第四章的实验结果图汇总
  2. numpy 加速心得
  3. 2.3 线性变换引入
  4. android root 挂载分区,adb — adb disable-verity, adb remount 实现重新挂载system分区为可读写分区...
  5. (原創) 如何讀取/寫入文字檔? (IC Design) (Verilog)
  6. Service Fabric下删除实例并注销应用
  7. SpringMVC使用及知识点提炼
  8. RouterOS SOCKS代理服务器(官方文档翻译)
  9. IT巨头组队年末将推“Gen-Z”内存新架构,英特尔和思科缺席是闹哪样?
  10. RabbitMQ 高可用集群搭建及电商平台使用经验总结