android获取SD卡剩余空间及注意事项
2015-05-14 16:17
323 查看
获取SD卡剩余空间方法。
//sd卡总的block数量
注意getAvailableBlocks已弃用,从api 18开始用getAvailableBlocksLong.
弃用方法内部实现:
可以看出其将其转化为int型。使用弃用方法在内存大时容易造成内存溢出,导致得到的值为负值,但在Log打印时打印出来的却不是 负值,导致在进行一些数值比较时,引发一些外表看起来不可思议的事情,其实本质原因就是赋为int超出其取值范围了,因为你使用时最好将其转化为long类型,或者使用getAvailableBlocksLong;其没有将其强转为int,因此安全些。
虽然是个小问题但还是养成良好的习惯,记录一下,嘎嘎。
String storage = Environment.getExternalStorageDirectory().getAbsolutePath(); StatFs fs = new StatFs(storage); //可用的blocks的数量 long availableBolocks=fs.getAvailableBlocks(); //单个block的大小 long blockSize=fs.getBlockSize();
//sd卡的剩余空间 long available=availableBolocks*blockSize;
fs.getBlockCountLong();
//sd卡总的block数量
注意getAvailableBlocks已弃用,从api 18开始用getAvailableBlocksLong.
弃用方法内部实现:
@Deprecated public int getAvailableBlocks() { return (int) mStat.f_bavail; }
可以看出其将其转化为int型。使用弃用方法在内存大时容易造成内存溢出,导致得到的值为负值,但在Log打印时打印出来的却不是 负值,导致在进行一些数值比较时,引发一些外表看起来不可思议的事情,其实本质原因就是赋为int超出其取值范围了,因为你使用时最好将其转化为long类型,或者使用getAvailableBlocksLong;其没有将其强转为int,因此安全些。
虽然是个小问题但还是养成良好的习惯,记录一下,嘎嘎。
相关文章推荐
- 获取Android手机中SD卡存储信息 获取剩余空间
- 获取Android手机中SD卡存储信息 获取剩余空间
- 获取Android手机中SD卡存储信息 获取剩余空间
- 获取Android手机中SD卡存储信息 获取剩余空间
- 获取Android手机中SD卡存储容量 获取剩余空间
- Android.os下的StatFs类主要用来获取文件系统的状态,能够获取sd卡的大小和剩余空间,获取系统内部空间也就是/system的大小和剩余空间等等。
- 获取Android手机中SD卡存储信息 获取剩余空间
- Android.os下的StatFs类主要用来获取文件系统的状态,能够获取sd卡的大小和剩余空间,获取系统内部空间也就是/system的大小和剩余空间等等。
- Android 获取Android手机中SD卡存储信息 获取剩余空间
- Android中获取ROM和SD卡剩余可用空间大小
- Android 获取系统或SDCARD剩余空间信息
- SD卡是否挂载,剩余可用空间,获取SD卡信息
- 获取SD卡剩余空间
- 【转】Android 获取系统或SDCARD剩余空间信息
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- android 获取手机内存及SD卡内存可用空间
- Android - 获取SD卡的内存空间大小
- Android 获取系统或SDCARD剩余空间信息
- Android 存储:SD卡剩余空间的检测
- Android中获取联系人时的注意事项