开发中有时要知道SD卡存储容量的情况android是什么手机。那么你要是不知道怎么获取怎么办?去某度搜一下不就好了xg111net?搜一下确实能看到很多例子,但几乎是一模一样的。首先要有权限。再根据路径得到一个StatFs对象。使用用StatFs对象可以得到SD卡中块的大小(getBlockSize)和块的总数(getBlockCount)。然后用块数量乘以块大小,就等到了最容量的字节数。剩余空间的大小用getAvailableBlocks去乘以块大小(getBlockSize)。嗯,这个看起来应该是没有什么问题的。但是你如果照着写,会发现getBlockSize、getBlockCount、getAvailableBlocks都被标上了@Deprecated,过时了。
过时了怎么办?自己看看源码吧android是什么手机。有getBlockSizeLong、getBlockCountLong、getAvailableBlocksLong。直接换成这三个就可以了?
还是再看看源码吧android是什么手机。有getTotalBytes,有getFreeBytes,我太平洋xg111xg111企业邮局还用块去计算做什么?直接获取啊。getAvailableBytes和getFreeBytes有什么区别?getFreeBytes包含了普通应用无法访问的保留部分。
网上得到的东西,要带上脑子去使用android是什么手机。有些代码已经快有十年的历史了,还被某些人简单的复制粘贴出来,当新的文章来发表。
下面是用kotlin代码写的android是什么手机。这几行kotlin代码和java的不同之处只是没有了new和get,类型也是自动判断的。
val rootFile = Environment.getExternalStorageDirectory() val stateFs = StatFs(rootFile.absolutePath) val totalSize = stateFs.totalBytesval freeSize = stateFs.freeBytes