android Q版本外部存储问题以及获取空间大小问题
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版本外部存储问题以及获取空间大小问题相关推荐
- Android Q版本应用兼容性适配指导
目录 Android Q版本应用兼容性适配指导... 1 1. 背景说明... 4 2. 存储空间限制... 4 2.1背景 4 2.2兼容性影响... 5 2.3 适配指 ...
- 一文看懂:Android Q版本在安全方面进行了哪些系统性改进
5月8日凌晨,2019年谷歌I/O开发者大会召开.谷歌下一代Android系统Android Q正式亮相,版本号是10.0.其实早在3月14日,谷歌就放出了Android Q的首个测试版. 那么,此次 ...
- android 源码分析 内置 sd storage,Android开罐头———外部存储与内部存储完全解析...
context.getExternalFilesDir(),Environment.getExternalStorageDirectory(),傻傻分不清?到底什么算安卓手机的external sto ...
- android强制选择器,谷歌手软了:不再强制在Android Q采用隔离存储沙盒机制
原标题:谷歌手软了:不再强制在Android Q采用隔离存储沙盒机制 IT之家4月26日消息 在Android Q的首个Beta版中,谷歌推出了一个隐藏的.激进的隔离存储沙盒机制,名为"Sc ...
- android 外部存储列表,如何获取Android设备的已安装外部存储列表
我使用/ proc / mounts文件来获取可用存储选项的列表 public class StorageUtils { private static final String TAG = " ...
- 首批Android Q版本真机上线,Testin云测助力尝鲜
2019年3月14日,Android 最新操作系统 Android Q beta 版本正式上线.Testin云测作为国内先进的应用服务平台,在第一时间完成了 Android Q beta 版本的手机系 ...
- 【Android 逆向】Android 系统文件分析 ( 外部存储设备文件 | sbin 命令程序目录 | dev 字符设备目录 )
文章目录 一.外部存储设备文件 二.sbin 命令程序目录 三.dev 字符设备目录 一.外部存储设备文件 /sdcard 文件是一个链接 , 相当于快捷方式 , 其实际的目录是 /storage/s ...
- android 存储无法写入,在Android中的外部存储中写入文件
我想在外部存储sdCard中创建一个文件并写入它.我已经通过互联网搜索并尝试但没有得到结果,我已经在Android Manifest文件中添加了权限,我在模拟器上这样做,我正在尝试下面的代码和获取ER ...
- Android Q中外部存储盘路径正则表达式的理解
Android Q的ModernMediaScanner.java文件中以下两个正则表达式,具体该怎么解读? private static final Pattern PATTERN_VISIBLE ...
最新文章
- [JS]请给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组。
- java list三种遍历方法性能比較
- laya 怎么生成签名_什么是数字签名
- html冷门标签,html 冷门
- 自建裸金属实例Oracle RAC上云
- hihocoder 1015 : KMP算法(kmp)
- Gartner发布2020年十大战略科技发展趋势
- 合并果子(洛谷-P1090)
- python 正交矩阵_协方差矩阵的计算、PCA
- 瑞士科学家造出了撞不坏的无人机丨Science Robitics
- 浮点错误的意思-PAT 、OJ
- Pspice仿真实验B-2
- java数据类型之间的转换_Java数据类型之间的转换(转)
- Linux history命令
- 【Node.js】前端页面仔的必修课,认识node
- dell服务器卡在启动界面_戴尔最新bios设置图解 当电脑出现开机画面按F2进入
- java模拟多人接力赛跑_Java多线程--模拟接力赛跑
- 国际短信接口文档-json
- Intel迅驰之前世今生
- MDK中AT45DB161驱动程序
热门文章
- 《Python深度学习》第四章的实验结果图汇总
- numpy 加速心得
- 2.3 线性变换引入
- android root 挂载分区,adb — adb disable-verity, adb remount 实现重新挂载system分区为可读写分区...
- (原創) 如何讀取/寫入文字檔? (IC Design) (Verilog)
- Service Fabric下删除实例并注销应用
- SpringMVC使用及知识点提炼
- RouterOS SOCKS代理服务器(官方文档翻译)
- IT巨头组队年末将推“Gen-Z”内存新架构,英特尔和思科缺席是闹哪样?
- RabbitMQ 高可用集群搭建及电商平台使用经验总结